//定义变量 Connection connection=null; Statement statement=null; ResultSet resultSet=null;
- 导入驱动jar包
- libs > mysql-connector-java-5.1.6-bin.jar
- 注册驱动
Class.forName("com.mysql.jdbc.Driver");//异常抛出
3.获取数据库连接对象 Connection
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "123456");
4.定义sql
String sql = "update student set age=35 where id=1";
5.获取执行sql语句对象 Statement
statement = conn.createStatement();
6.执行sql,接受返回结果
int count = stmt.executeUpdate(sql); //resultSet = statement.executeQuery(sql);
7.处理结果
System.out.println(i);
if (i>0){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
8.释放资源
finally {
if (connection!=null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
详解各个对象
1、DriverManager:驱动管理对象
- 注册驱动
Class.forName("com.mysql.jdbc.Driver");
- 获取数据库连接-
DriverManager.getConnection(url,user,password);2、Connection:数据库连接对象
- 获取sql执行对象-
statement = connection.createStatement();
- 管理实务-
- 提交事务:setAutoCommi(boolean autoCommit):调用该方法设置参数false,即开启事务
- 提交试管:commit()
- 回滚事务:rollback()
- 执行sql-
- execute:可以执行任意的sql语句
- executeUpdate:执行DML(intsert、update、delete)、DDl(create、alter、drop) 返回值:影响的行数,可以判断是否执行成功
- next():游标向下移动一行
- getxxxx(参数):获取数据
- xxxx:代表数据类型
- (参数):
- int :代表列的编号,从1开始 如:getString(1)
- String:代表列的名称 如:getDouble(“name”)
-
sql注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接,会造成安全问题
-
解决sql注入问题:使用PreparedStatement对象来解决
-
预编译的sql:参数使用?作为占位符
-
定义sql
- 注意:sql的参数使用?作为占位符。如:select * from user where username =? and password =?;
-
获取执行sql语句的对象
PreparedStatement pstmt = connection.prepareStatement(sql);
-
给?赋值
- 方法:setxxxx(参数1,参数2)
- 参数1:?的位置编号 从1开始
- 参数2:?的值
- 方法:setxxxx(参数1,参数2)
-
执行sql
-
后期使用PreparedStatement来完成增删查改
- 可以防止sql注入
- 效率更高
public static void close(ResultSet rs ,Connection conn, Statement stmt) {
if (stmt!=null){
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
连接数据库:(还有一种简单方法)
public static Connection getConnect() throws ClassNotFoundException, SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
//获取数据库地址 定义连接数据库的url
String url = "jdbc:mysql://localhost:3306/test";
//获取用户名
String username = "root";
//获取密码
String password = "123456";
获取数据库连接
conn = DriverManager.getConnection(url, username, password);
}catch (Exception e){
System.out.println("连接数据库失败");
e.printStackTrace();
}
return conn;
}



