jdbc
java database connection
是java访问数据库的唯一途径
mybatis hibernate 持久层框架
都是对 jdbc的封装
jdbc是一组接口 接口是规范,在jdk中没有实现类
由数据库厂商做实现 并将实现类 以第三方jar包形式 提供
第三方jar包 : 非jdk提供的jar包 其他公司开发的
导入jar包:
1.在项目下 新建lib目录
2.把jar包放到lib目录下
3.选中jar包 --build path--add to build path..
jdbc连接数据库的步骤:
1.注册驱动:
Class.forName("com.mysql.jdbc.Driver");
2.连接数据库:
String url = "jdbc:mysql://localhost:3306/stu";
String user = "root";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password);
3.创建statement对象 :利用该对象 来执行sql
Statement st = conn.createStatement();
或者
PreparedStatement ps = conn.prepareStatement(sql);
4.编写sql语句
5.执行sql
int count = st.executeUpdate(sql); 此方法适用于增删改操作
ResultSet rs = st.executeQuery(sql); 此方法使用与查询操作
ResultSet类中的方法:
next():用于判断下一条是否有数据 如果有则将游标指向下一条数据
getxxx(列名/第几列):获取当前行的某列数据
或者
ps.executeUpdate() / ps.executeQuery()
6.处理返回结果
7.关闭数据连接资源
conn.close();
--------------------------------------------------------------
execute()方法:
能执行任意sql语句 返回true则是查询语句 返回false是增删改语句
PreparedStatement 比 Statement 优势:
1.不用拼接sql字符串
2.防止sql注入 (sql注入:在用户输入数据中包含sql关键字,从而改变运行结果来实现恶意攻击数据库)
3.PreparedStatement可以在执行sql前 在数据库中被预编译,性能速度相较更快。
--------------------------------------------------------------
作业:
1. jdbc七步骤
2.使用PreparedStatement 实现 模糊查询:
要求查询t_user表的用户名中包含"abc"的所有数据
public List<User> queryByName(String s){}
3.读取database.properties的文件,并且连接数据库,并且插入一条数据:
driver=com.mysql.jdbc.Driver
url=
user=root
password=
sql=insert into...
create table t_user(
id int primary key auto_increment,
name varchar(20),
password varchar(20)
)engine=InnoDB default charset=utf8;