public class ddd {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库链接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1", "username", "password");
// 定义sql语句
String sql = "update account set [列名]= [修改值] where [条件语句]";
// 获取执行sql的对象
Statement stmt = conn.createStatement();
// 执行sql
int count = stmt.executeUpdate(sql);
System.out.println(count);
// 释放资源
stmt.close();
conn.close();
}
}
讲解:
对各个对象的解释
1. DriverManager:驱动管理对象
* 功能
1. 注册驱动
com.mysql.jdbc.Driver中有一个静态代码块,在静态代码块中我们注册驱动
注册驱动的意义是:告诉程序该使用哪一个数据库驱动jar包
mysql5之后的jar包中可以省略注册驱动这个步骤
2. 获取数据库链接
Connection conn = DriverManager.getConnection(url, username, password);
url:指定链接路径,mysql的数据库就是这样写
"jdbc:mysql://localhost:3306/mydb1"
链接自己本地的数据库,且数据库的端口号为3306的话可以这样写
"jdbc:mysql:///mydb1"
username:用户名
password:密码
2. Connection:数据库链接对象
1. 功能:
1. 获取执行sql的对象
* Statement createStatement()
*PreparedStatement prepareStateMent(string sql)
2. 管理事务:
* 开启事务
void setAutoCommit(boolean autoCommit):调用该方法设置参数为false
* 提交事务
commit()
* 回滚事务
rollback()
3. Statement:执行sql语句的对象
1. 执行sql
1. boolean execute(String sql):了解一下就可以了
2. int executeUpdate(Stirng sql):执行DML(增删改), DDL()语句
返回值是影响的行数, 这可以帮助我们确认是否执行成功
3. ResultSet executeQuery(String sql):执行DQL(select) 语句
返回一个结果集对象
4. ResultSet:执行结果对象
* next():游标向下移动一行
* getXxx(参数): Xxx代表数据类型 getInt...
参数:可以是..1 int, 这时候代表列数
2. String 这时候代表是列名
 5. PreparedStatement:行Sql
问题
sql注入问题 接sql候,有一些sql的特殊关键参与字符串的
造成安全性问题
:PreparedStatement决问题
使用预编译的SQL,所有参数使用?作占位符
使用步
1. 驱动jar包, mysql-connector-java-5.1.37-bin.jar
2. 册驱动
3. 库链象Connection
4. 义sql
* 参数使用?作占位符
5. 取PreparedStatement象 Connection.prepareStatement(sql)
6. 赋值
* 方法:setXxx(参数1参数2)
* 参数1问号的位置
* 参数2好的
7. 行sql句,不再传递sql
8.
9.

6. 数据库链接池:
    * 概念:其实就是一个容器(集合),存放数据库链接的容器
            当系统初始化好之后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时
            从容器中获取链接数据库的容器。
    * 好处:
        1. 节约资源
        2. 用户访问高效
    实现:
    1. 标准接口:DataSource javax.sql包下的
        * 方法:获取连接:getConnection()
                归还连接:从连接池中获取的方法使用close()方法就可以归还连接,而不是关闭
    2. 一般我们不去实现它,由数据库厂商来实现
        1. C3P0:数据库连接技术
            使用步骤:1. 导入jar包,c3p0-0.9.5.2.jar
                      mchange-commons-java-0.2.12.jar
                     2. 定义配置文件:
                        名称:c3p0.properties 或者 c3p0-config.xml
                        路径:src 下即可
                     3. 创建核心对象 数据库连接池对象 ComboPooledDataSourcce
                     4. 获取连接:getConnection
        2. Druid:数据库连接池实现技术,由阿里巴巴提供的
        1. 导入jar包 druid-1.0.9.jar
            2. 定义配置文件:
                * 是properties文件
                * 可以叫任意名称,可以放在任意的目录下
            3. 获取数据库连接池对象:DruidDataSourceFactory
            4. 获取连接:getConnection

            5. 定义工具类
                1. 定义一个类 JDBCUtils
                2. 提供静态代码块,加载配置文件,初始化连接池对象
                3. 提供方法
                    1. 获取连接的方法;通过数据库连接池获取连接
                    2. 释放资源
                    3. 获取连接池的方法
7. Spring JDBC:JDBC Template
    Spring JDBC
        Spring 框架对JDBC的简单封装。提供了一个JDBCTmplate对象嘉华JDBC开发
        步骤:1. 导入jar包
             2. 创建JdbcTemplate对象,DataSourse
             3. 调用jdbcTmplate的方法来完成CRUD的操作
                * update():执行DML语句:增删改
                * queryForMap:查询结果封装成Bean对象
                * queryForList:查询结果封装成List对象
                * query():查询结果封装成JavaBean对象
posted on 2020-03-21 17:15  百晓灵狐  阅读(317)  评论(0编辑  收藏  举报