IDEA配置JNDI数据源并测试连接

时间:2024-03-31 16:19:14

我用的是IDEA2019+MYSQL8.0
1.新建一个web项目

IDEA配置JNDI数据源并测试连接

IDEA配置JNDI数据源并测试连接
2.在META-INF下添加context.xml文件(没有META-INF文件夹的话用new Directory创建一个,名字不能写错),并写上如下代码:

<?xml version="1.0" encoding="UTF-8"?>

IDEA配置JNDI数据源并测试连接
IDEA配置JNDI数据源并测试连接
其中的username和password填写你自己的mysql数据库账户和密码,test改为你自己要用到的数据库名。
3.导入tomcat服务器并且把jdbc数据库的jar包放在tomcat的lib目录下。
IDEA配置JNDI数据源并测试连接
IDEA配置JNDI数据源并测试连接
IDEA配置JNDI数据源并测试连接
IDEA配置JNDI数据源并测试连接

4.在数据库test下创建表userinfo:
CREATE TABLE IF NOT EXISTS userinfo(
id INT primary key AUTO_INCREMENT COMMENT ‘用户编号’,
username VARCHAR(64) NOT NULL COMMENT ‘用户名’,
password VARCHAR(64) NOT NULL COMMENT ‘密码’
)ENGINE=INNODB CHARSET = UTF8 COMMENT=‘用户信息’;
IDEA配置JNDI数据源并测试连接
5.编写连接类DBUtil和数据源注册测试类Register:
IDEA配置JNDI数据源并测试连接
public class DBUtil { static final String URL = “jdbc:mysql://127.0.0.1:3306/test” + “?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8”; static final String USER = “root”; static final String PWD = “root”; public static Connection getConn() {// JDBC 访问数据库步骤: Connection conn = null; try {// 1 加载驱动程序 mysql驱动:com.mysql.jdbc.Driver Class.forName(“com.mysql.cj.jdbc.Driver”);// 2 获得数据库的连接 conn = DriverManager.getConnection(URL, USER, PWD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } //通过数据源/连接池获得连接 public static Connection getDataSourceConn() { Connection conn = null; try { Context context = new InitialContext(); //获取数据源对象 DataSource ds = (DataSource)context.lookup(“java:comp/env/jdbc/test”); //得到连接对象 conn = ds.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; }//关闭 public static void close_ps(Connection conn, PreparedStatement ps, ResultSet rs) { if(conn!=null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } if(ps!=null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if(rs!=null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } }}

public class Register { private static final String URL = “jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8”; private static final String USER = “root”; private static final String PWD = “root”; //增加用户信息 public static int insertUserinfo(String name,String password){ int count = 0; String sql = “INSERT INTO userinfo” + “(username,password)” + “VALUE” + “(”+"’"+name+"’"+","+"’"+password+"’"+")"; DBUtil.getConn(); Connection conn = null; Statement st = null; try { Context context = new InitialContext(); //获取数据源对象 DataSource ds = (DataSource)context.lookup(“java:comp/env/jdbc/test”); conn = ds.getConnection(); //3 创建Statement对象 st = conn.createStatement(); //4 用Statement对象来执行SQL语句 count = st.executeUpdate(sql); } catch (SQLException | NamingException e) { e.printStackTrace(); }finally { if (st!=null){ try { st.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){} try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return count; }}

6.编写注册界面register.jsp,注册信息录入数据库registerDeal.jsp
IDEA配置JNDI数据源并测试连接
register.jsp代码:
IDEA配置JNDI数据源并测试连接

registerDeal.jsp代码
<%@ page import=“db.Register” %><%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/10/13 Time: 18:51 To change this template use File | Settings | File Templates.–%><%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

注册录入 <% request.setCharacterEncoding("UTF-8"); String name = request.getParameter("username").trim(); String pwd1 = request.getParameter("pwd1").trim(); Register.insertUserinfo(name, pwd1);%>

7.测试代码
IDEA配置JNDI数据源并测试连接
IDEA配置JNDI数据源并测试连接
IDEA配置JNDI数据源并测试连接

一定要把jdbc的jar包放入tomcat的lib中