首先将对应的jar包导入到项目库中。
使用Class.for(driver驱动类)来加载驱动,这里的driver为
com.mysql.cj.jdbc.Driver
加载完成后,通过DriverManager.getConnection(url,root,password)
来获取与数据库连接的对象。
这里的url为
jdbc:mysql://IP地址:端口号/数据库实例化对象名称?serverTimezone = GMT%2B8
mysql8后面需要加时区,也就是serverTimezone = GMT%2B8
url地址一般由四部分组成:协议、主机、端口、路径
jdbc:mysql
看做协议、IP地址为主机、端口号为端口、数据库实例化对象为路径。(应该是这样,我猜的)
取得Connection对象后,我们可以通过这个对象查看连接状态:
isClosed()
返回boolean值
查看开启关闭自动提交(打开关闭事务模式):
getAutoCommit()
setAutoCommit(boolean set)
rollback()
回滚
commit()
提交
查看连接数据库的名称:
getCatalog()
使用完connection对象之后应该调用其close()
方法将其关闭。
Connection对象不能执行sql语句,要使用Statement对象来进行sql语句的操作。
通过Connection对象的createStatement()
的方法来获取Statement对象。
之后使用Statement对象的
execute(sql)
执行sql语句,如果有表的返回,则将会将数据存储它自己的ResutlSet
对象中,同时return一个true的布尔值。
executeUpdata(String sql)
执行DDL、DML语句
executeQuery(String sql)
执行DQL语句,返回ResultSet对象
ResultSet的get数据类型(String 字段名)
可以取到元组中对应字段的值,使用next()
方法来移动游标,返回布尔值判断是否移动到了末尾。
同样ResultSet
对象和Statement
对象也是需要调用close()
方法关闭的。
使用ResultSet对象中的getResultSetMetaData()方法可以获得ResultSetMetaData对象,该对象存储着表的名字,字段名等信息,常用方法如下:
getColumnCount()
获取列数
getColumnName(int index)
取得索引字段名字
getColumnType(int index)
取得索引字段类型
java.sql.Types封装了对应类型的索引
getTableName(1)
取得表名
方式SQL注入,或者是减轻sql语句输入的负担,可以使用PreparedStatement
对象进行操作。
在其中的SQL语句可以使用占位符?来代替参数。
在项目中为了避免重复大量的数据连接语句,我们可以自己封装工具类
JDBCUtil
使用该工具类来进行数据库的连接,执行SQL的操作,可以减少大量的重复语句,简化代码量,提高可读性等。
为了更加方便对表的CRUD操作,我们一般会对每一个表封装一个Dao类,来进行表的CRUD。一般命名都会以表名Dao
的方式命名。
由于ResultSet一般在使用完之后,我们会对其进行关闭操作,为了保留ResultSet中的信息,我们会设置实体类(Entity)加集合的方式对表单存储。一般都会命名为
entity.表名