JDBC快速入门

原生JDBC快速入门

步骤:(提前定义好sql语句、url、user、password、driver)一般写properties配置文件中【除sql外】
1.导入驱动jar包
2.注册驱动

Class.forName("com.mysql.jdbc.Driver");
3.获取Connection数据库连接对象
Connection conn=DriverManager.getConnection(url,user,password)
4.获取执行sql语句的对象Statement或者PreparedStatement
				Statement stmt=conn.createStatement();//Statement专用
				PreparedStatement pstmt=conn.preparedStatement(sql);//PreparedStatement专用
5.给占位符赋值【preparedstatement特有的一步】
pstmt.setXXX(1,"arg)   //char类型也用setString()
6.执行sql,接收返回结果
resultSet = pstmt.executeQuery();//查询
int count=pstmt.executeUpdate();//用于执行增删改
7.处理结果
while(resultset.next()){
//遍历结果集,并进行操作
}
8.释放资源(逆序释放)
finally {
            if (resultSet!=null){
                resultSet.close();
            }
            if (pstmt!=null) {
                pstmt.close();
            }
            if (connection!=null) {
                connection.close();
            }
        }
注意:一般都会使用Preparedstatement来完成数据库的增删改查
 优点:
 	1.可以防止SQL注入
 	2.效率更高

========================= 以下是方法、对象的细节=========================================

获取Connection数据库连接对象

获取数据库连接对象: DriverManager调用getConnection()方法获得Connection对象

static Connection getConnection(String url,String username,String password)

参数url: jdbc:mysql://ip地址(域名):端口号/数据库名称
细节:如果连接的是本机的MySQL服务器,并且服务器的默认端口是3306,可以将url简写为

jdbc:myslq:///数据库名称

connection对象功能1:获取能执行sql语句的 Statement、PreparedStatement对象

方式1:    Statement  createStatement()
方式2:   PreparedStatement preparedStatement(sql)

细节:此时PreparedStatement对象已经将sql预编译给DBMS,而Statement对象后面调用执行方法才会传入sql。

给占位符传值:preparedstatement.setString(1,“值”);
setXXX方法:XXX表示哪种类型的数据
参数1:第几个占位符?从1开始算(按参数排序,不按类型),所有的占位符都需要指定值
参数2:占位符的值

connection对象功能2:管理事务

开启事务:connection.setAutoCommit(boolen autoCommit);参数设置为false,即开启事务。MySQL默认true,Oracle默认是false
提交事务:connection.commit();//查询不用提交
回滚事务:rollback()

Statement、PreparedStatement对象执行sql

Statement用于执行静态sql,并返回其生成的结果集对象
缺点:有SQL注入
PreparedStatement执行预编译sql,避免sql注入,预编译提高了效率

使用步骤:

1.preparedstatement.setXXX(arg1,arg2)//preparedstatement特有的。比statement多出的一步
2.执行sql【preparedStarement的执行方法不传入sql参数,预编译的时候传入过了】
	1)int executeupdate(String  sql)//用于执行DML(增删改),返回值:影响的行数。可以用来判断MDL是否执行成功  返回值>0,则执行成功,反之失败
	2)ResultSet   executeQuery(String sql):执行DQL(select),返回值是一个结果集
	3)execute(String sql)//前两个特点 

结果集ResultSet

while(rest.next()){
	//rs.getString(1);//同set方法,是参数的序号。
 System.out.println(rs.getString("password"));
}

Ps:目前一般都使用封装好的框架SSM、springboot对数据库进行操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值