1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
2.创建连接对象
Connection conn = DriverManager.getConnection(url , username , password ) ;
3.创建会话对象
Statement stat = conn.createStatment();
- Statement执行不带参数的简单SQL语句,每次执行SQL语句时,数据库都要编译该sql语句
PreparedStatement stat = conn.preparedStatement(sql);
- PreparedStatement用来执行带参数的预编译的SQL语句
- 预编译可以提高执行效率,并且防止SQL注入
4.执行SQL语句
boolean b = stat.execute();//可以执行任意SQL语句,但是推荐执行DDL(数据定义语言)
ResultSet rs = stat.executeQuery();//执行select查询SQL语句
int rows = stat.executeUpdate();//推荐执行增删改SQL
5.关闭连接
conn.close();
DBCP连接池
频繁创建连接和关闭连接是非常消耗系统资源的两个过程,通过连接池技术设置固定的连接个数,当某个线程执行完SQL语句后调用close不再是关闭连接而是释放连接等待下一个线程使用,这样就解决了由于频繁创建连接和关闭连接造成的性能问题
BasicDataSource pool = new BasicDataSource();//创建连接池
pool.setDriverClassName("com.mysql.jdbc.Driver");//设置驱动
pool.setUrl("jdbc:mysql://localhost:3306/person");//设置连接地址
pool.setUsername("root");//数据库用户名
pool.setPassword("root");//数据库密码
pool.setInitialSize(3);//初始连接数量
pool.setMaxActive(5);//最大连接数量
pool.getConnection();//获取连接
读取Properties文件
Properties po = new Properties();
InputStream is = Object.class.getClassLoader.getResourceAsStream("/mysql.properties");
po.load(is);//读取
po.getProperty("name");//获取
ResultSet结果集的使用
boolean next();判断是否有下一个条信息并且移动指针到下一个条信息处
String getString(n);获取当前指针处的第n个字段值
int getInt(n);获取当前指针处的第n个字段值