1.JDBC:Java提供的一套用来操作数据库的接口
一、创建数据库连接对象
1.准备工作:
-
确定MySQL可以正常使用
-
确定MySQL账号和密码是正确的:root-520741
-
MySQL和导入的MySQL驱动包的版本是否匹配
2.创建对象:
-
方式一
-
1.创建Driver对象Driver driver = new com.mysql.jdbc.Driver()
-
2.调用方法connect(String url, java.util.Properties info)--jdbc:mysql://localhost:3306/myemployees
-
方式二
-
1.创建Driver对象
-
2.将Driver对象注册到DriverManager
-
3.获取Connection对象
-
方式二优化
-
1.初始化Driver类中的静态代码块来初始化Driver对象:Class.forName(driver);
-
2.获取Connection对象
-
方式三最终版--通过读取配置文件(**.properties)-map
-
1.创建properties对象
-
2.创建流
-
3.调用方法加载流:p.load(fis);
-
4.读取内容
-
5.获取driver对象
-
6.利用读取到的内容获取connection对象
3.properties:-key,value为string,若在module中运行,则默认读取配置文件的路径是module下(不是工程下)
二、实现对数据库的CRUD
1.插入一条数据
-
1.获取connection对象
-
2.sql语句:String sql = "insert into student(id,name) values(?,?)";
-
3.预编译:connection.prepareStatement(sql);
-
4.给占位符赋值:ps.setInt(1,100);ps.setString(2,"zhangsan");
-
5.执行sql:int result = ps.executeUpdate();
2.修改数据
-
2.sql语句:String sql ="update student set name=? where id=?";
3.删除数据
-
2.sql语句:String sql = "delete from student";
4.查询数据
-
2.sql语句:String sql = "select id,name from student";
-
4.执行sql:ResultSet rs = ps.executeQuery();
-
5.1遍历获取数据:while(rs.next()){rs.getInt("id")}--先判断是否存在再一条条打印
-
(5.2)遍历时,也可将每条数据装于某对象中,再将该对象放于arryarlist集合,最后再返回集合
-
《万物皆对象》
三、事务
1.事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。
2.try{ connection.setAutoCommit(false)..connection.commit(); }catch{ connection.rollback(); }finally{ connection.setAutoCommit(true); }
四、数据库连接池(了解)
1.方式一(德鲁伊)
-
1.创建数据源对象(数据库连接池对象):new DruidDataSource();
-
2.设置参数:对象.set...方法
-
3.获取connection对象
2.方式二
-
1.创建properties对象:利用配置文件
-
2.加载流
-
3.创建DateSource对象:DruidDataSourceFactory.createDataSource(p);
-
4.获取connection对象
五、DBUtils工具类(了解)
1.查
-
1.创建queryRunner对象:new QueryRunner();
-
2.查询单行:Student student = queryRunner.query(connection,
-
sql语句, new BeanHandler<Student>(Student.class), 占位符赋值);
-
(3.)查询多行:List<Student> students = queryRunner.query(*,
-
*, new BeanListHandler<Student>(Student.class));
2.增删改
-
1.创建QueryRunner对象
-
2.操作数据:int result = queryRunner.update(connection, sql语句, 占位符赋值);
五、批处理(了解)
1.添加参数(开启批处理):jdbc:mysql://localhost:3306/myemployees?rewriteBatchedStatements=true
2.connection
3.sql
4.预编译
5.批处理操作()
-
添加批处理:ps.addBatch();
-
操作数据
-
执行批处理:ps.executeBatch();
-
清理批处理:ps.clearBatch();