jdbc
Posted xyhx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc相关的知识,希望对你有一定的参考价值。
常用接口:
- DriverManager:驱动管理对象
注册驱动告诉程序使用哪个数据库驱动
2Connection:数据库连接对象
- 获取sql的对象
createStatement()有sql注入
PreparedStatement()继承createStatement()类解决了sql注入问题
2管理事务
开启setAutoCommit(Boolean autoCommit)
提交事务:commit();
回滚事务:rollback()
3Statement:执行sql的对象
1执行sql
1 Int executeUpdate():执行增删改语句看返回值影响的行数判断执行成功与否
2ResultSet executeQuery(String sql):执行查的语句
4ResultSet:结果集对象,封装查询结果:
1Getxxx(参数):获取数据
2next():对结果集进行滚动的方法移动到下一行
执行流程:
1. 导入驱动jar包
2.注册驱动
3.获取数据库连接对象
4.定义sql语句
5.获取执行sql的对象 Statement
6.执行sql
7.处理结果
8.释放资源
代码实现:
public static void main(String[] args) throws Exception {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象
Connection con = DriverManager.getConnection("jdbc:mysql:///db1", "root", "");
//定义sql
String sql="select * from st ";
//获取指定sql 因为Statement有sql注入所以使用子类 PreparedStatement代替
PreparedStatement stm=con.prepareStatement(sql);
//执行sql
ResultSet rs=stm.executeQuery(sql);
//处理结果
while(rs.next()){
String name=rs.getString("name");
int age=rs.getInt("age");
System.out.println(name+age);
}
}
事务
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt1 = null;
PreparedStatement pstmt2 = null;
try {
//1.获取连接
conn = JDBCUtils.getConnection();
//开启事务
conn.setAutoCommit(false);
//2.定义sql
//3.获取执行sql对象
//4. 设置参数
//5.执行sql
//提交事务
conn.commit();
} catch (Exception e) {
//事务回滚
try {
if(conn != null) {
conn.rollback();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
};
连接池
1. 方法:
* 获取连接:getConnection()
* 归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了。而是归还连接
2. 一般我们不去实现它,有数据库厂商来实现
Druid:数据库连接池实现技术,由阿里巴巴提供的
//1.导入jar包
//2.定义配置文件
//3.加载配置文件
Properties pro = new Properties();
InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//4.获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//5.获取连接
Connection conn = ds.getConnection();
System.out.println(conn);
以上是关于jdbc的主要内容,如果未能解决你的问题,请参考以下文章