这是我参与11月更文挑战的第十六天,活动详情查看:2021最后一次更文挑战
JDBC连接数据库步骤
1、加载jdbc驱动程序;
2、创建数据库的连接;
3、创建preparedStatement;
4、执行SQL语句;
5、遍历结果集;
6、处理异常,关闭JDBC对象资源。
详细步骤
首先我们在idea上创建一个空项目
- 创建一个模块 选择 Java Enterprise
找到项目中的pom.xml文件
加入第三方的数据库驱动包
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
包就成功导入啦!
新建工具类
代码如下
package com.hbwl.utils;
import com.mysql.cj.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtils {
//MYSQL默认的时区是欧美时区 时区如果不一致 会拒绝访问 我们可以将系统的时区修改为UTC
//serverTimezone=UTC 设定时区
//useUnicode=true 设定编码
//characterEncoding=utf-8 让客户端支持中文 设定编码为utf-8
private static final String URL="jdbc:mysql://localhost:3306/db_crm?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
//jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;\
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为\
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
private static final String USERNAME="root";
private static final String PASSWORD="123456";
static{
try {
DriverManager.registerDriver(new Driver());//加载JDBC驱动程序
} catch (SQLException e) {
e.printStackTrace();
}
}
//获取链接
public static Connection openConn()
{
Connection connection = null;
try {
connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
//准备JDBC所需的三个参数(url,user,password)
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
/**
*处理异常,关闭JDBC对象资源
*操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:
*1、先关闭requestSet
*2、再关闭preparedStatement
*3、最后关闭连接对象connection
/
public static void closeConn(Connection conn, PreparedStatement ps, ResultSet rs)
{
if(rs!=null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null)
{
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null)
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
测试插入功能
代码如下
package com.hbwl.servlet;
import com.hbwl.utils.DBUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
@WebServlet("/doAdd")
public class DoAddServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取链接
Connection connection = DBUtils.openConn();
//准备好SQL语句
String sql="INSERT INTO tb_user VALUES(null,'张三','男',22,'123456','湖北襄阳')";
//执行SQL语句 并获取结果
try {
Statement statement = connection.createStatement();
//返回影响了多少行
int row = statement.executeUpdate(sql);
if(row>0)
{
System.out.println("插入成功");
}
else {
System.out.println("插入失败");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
整合Tomcat部署项目并启动项目
在浏览器中输入 http://localhost:8080/doAdd 查看是否插入成功数据到数据库
如果在连接字符串URL后面没有加useUnicode=true&characterEncoding=utf-8 插入的中文数据会变成?号。
这样就成功啦!!
小结
如果这篇文章对你有帮助的话,记得三连凹~
你的支持是小编最大的动力!!!