JDBC项目(关键部分)
场景
最近遇到一些非常老旧的项目,需要jdbc去连接数据库。这个时候就需要如下准备:
1.mysql-connector-java 包
(这个包的版本要与你用的数据库版本保持一致,不然会出现不必要的报错)
2.工具类(配合连接jar包,沟通数据库)
3. 可能会出现切换 mysql-connector-java 版本包,导致的问题,本地可以连接数据库,jar包不行
下载的mysql-connector-java 包 官方地址为
官网地址:https://dev.mysql.com/downloads/connector/j/
具体下载步骤方式可以参考另外一位博客
https://blog.csdn.net/ebb29bbe/article/details/126861047?spm=1001.2014.3001.5506
工具类

DBConn(连接工具类)
学习链接:
(JDBC连接mysql的url的写法和常见属性)
https://blog.csdn.net/hahaha__123hi/article/details/114669933
package com.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DBConn {// //本地环境
// private static final String url = "jdbc:mysql://localhost:3306/tsk"; //数据库地址
// private static final String username = ""; //数据库用户名
// private static final String password = ""; //数据库密码、
// private static final String driver = "com.mysql.jdbc.Driver"; //mysql驱动
// private static final Connection conn = null;//正式环境-(版本为5.1.30-community,所以mysql-connector的版本为5.1.30)private static final String url = "jdbc:mysql://xx.xxx.xxx.xx:3306/tsk?autoReconnect=true&failOverReadOnly=false&maxReconnects=10"; //数据库地址private static final String username = ""; //数据库用户名private static final String password = ""; //数据库密码private static final String driver = "com.mysql.jdbc.Driver"; //mysql驱动private static final Connection conn = null;/*** 连接数据库* @return*/public static Connection conn() {Connection conn = null;try {Class.forName(driver); //加载数据库驱动try {conn = DriverManager.getConnection(url, username, password); //连接数据库} catch (SQLException e) {e.printStackTrace();}} catch (ClassNotFoundException e) {e.printStackTrace();}return conn;}/*** 关闭数据库链接* @return*/public static void close() {if(conn != null) {try {conn.close(); //关闭数据库链接} catch (SQLException e) {e.printStackTrace();}}}
}
DBUtil(关于数据库表增删改查)
package com.jdbc;
import com.entity.ljpjts;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;public class DBUtil {private static Connection conn = null;private static PreparedStatement ps = null;private static ResultSet rs = null;private static final CallableStatement cs = null;//外部其他类调用该方法开启数据库连接public static int kqjdbc() {conn = DBConn.conn();if(conn!=null){return 1;}return 0;}//外部其他类调用该方法关闭数据库连接public static void gbjdbc() {DBConn.close();}/*** Insert 新增方法封装* sqltype * @param stu 传入参数*/public static void Insert(ljpjts stu,String sqltype) {String sql ="";if("1".equals(sqltype)){sql = "INSERT INTO ljpjts (sjly, qudao, ywxt, sblsh,bjbh, qhbm, qhmc, bmbm, bmmc, sxbm, sxmc, yhid, sqrxm, lxrxm, sqsj, bjsj, clrxm, bjjd, cjsj, sjtgbm, createtime) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; //插入sql语句}if("2".equals(sqltype)){sql = "INSERT INTO yjpjts (sjly, qudao, ywxt, sblsh,bjbh, qhbm, qhmc, bmbm, bmmc, sxbm, sxmc, yhid, sqrxm, lxrxm, sqsj, bjsj, clrxm, bjjd, cjsj, sjtgbm, createtime) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; //插入sql语句}try {ps = conn.prepareStatement(sql);/*** 调用实体StuInfo类,获取需要插入的各个字段的值* 注意参数占位的位置* 通过set方法设置参数的位置* 通过get方法取参数的值*/
// ps.setString(1, stu.getId());ps.setString(1, stu.getSjly());ps.setString(2, stu.getQudao());ps.setString(3, stu.getYwxt());ps.setString(4, stu.getSblsh());ps.setString(5, stu.getBjbh());ps.setString(6, stu.getQhbm());ps.setString(7, stu.getQhmc());ps.setString(8, stu.getBmbm());ps.setString(9, stu.getBmmc());ps.setString(10, stu.getSxbm());ps.setString(11, stu.getSxmc());ps.setString(12, stu.getYhid());ps.setString(13, stu.getSqrxm());ps.setString(14, stu.getLxrxm());ps.setString(15, stu.getSqsj());ps.setString(16, stu.getBjsj());ps.setString(17, stu.getClrxm());ps.setString(18, stu.getBjjd());ps.setString(19, stu.getCjsj());ps.setString(20, stu.getSjtgbm());ps.setString(21, stu.getCreatetime());//excecute是执行增删改的,executeQuery是执行查询的ps.executeUpdate(); System.out.println("插入成功(* ̄︶ ̄)");} catch (SQLException e) {e.printStackTrace();}finally {//DBConn.close();}}/*** sqltype * Select 查询方法封装* @param*/public static int Select(String sblsh,String bjbh,String bjjd,String sqltype) {int row =0;String sql ="";if("1".equals(sqltype)){sql = "select count(*) from ljpjts where bjbh='" + bjbh + "' and bjjd='" + bjjd + "'" + "and sblsh='"+sblsh+"'";}if("2".equals(sqltype)) {sql = "select count(*) from yjpjts where bjbh='" + bjbh + "' and bjjd='" + bjjd + "'" + "and sblsh='"+sblsh+"'";}try {ps = conn.prepareStatement(sql);//excecute是执行增删改的,executeQuery是执行查询的ResultSet rs = ps.executeQuery();rs.next();row = rs.getInt(1);System.out.println("行数:"+row);System.out.println("查询成功(* ̄︶ ̄)");} catch (SQLException e) {e.printStackTrace();}finally {//DBConn.close();}return row;}
}
当出现本地可以连接数据库,jar包运行却连接不了数据库(更神奇的是jar包解压里面明明看得见相关连接包),这个时候就是构建工件出现了问题
(1)删除打包得到的文件(class包)
(2)删除“工件”配置,重新配置,即可





本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
