使用到的环境如下:
IEDA19.0.1
Navicat16.0.11
mysql依赖包:mysql-connector-j-8.0.32.jar
1.要使用JDBC连接mysql实现基本的表操作,我们首先要知道 JDBC 是什么?
网上的资料:
概念:JDBC(Java DataBase Connectivity) :Java数据库连接技术:具体讲就是通过Java连接广泛的数据库,并对表中数据执行增、删、改、查等操作的技术。
简单的来说 JDBC 在JAVA和mysql(或者其他数据库)扮演着一个中间人的角色 ,java编程要结合数据库管理用户数据的话,就会通过jdbc。
至于JDBC的安装配置和一些基本的概念,可以自行检索。
2.mysql语句的使用和建表和插入数据
这里为了方便后续的演示,直接使navicat建表 插入演示数据
当navicat 版本为16.0 .11 这里稍微需要一点mysql基础
3.IEDA新建项目,开始‘部署配置环境’
3.1创建新项目
打开IEDA主页面-->左上角的-->file-->new-->project 随便给个命名 (建议不要用中文)
演示项目名为Project01
3.2 JAVA代码分包分层,新建两个包 分别是dao层和util工具包
Project01-->src-->new-->package
3.3 新建项目依赖 导入mysql依赖包
在src文件同层级新建一个Directory类型文件 命名为lib
可以根据相应的版本需求,下载适配的mysql依赖包
下载mysql依赖包的方法 可以参考这位博主的博客
参考地址:(1条消息) JDBC数据库驱动的下载、安装与连接_jdbc驱动下载_pan_junbiao的博客-CSDN博客
下载地址:MySQL :: Download Connector/J
下载完成之后,将mysql依赖包放到lib文件夹中
此时mysql依赖包还没有完全得导入(配置)到项目之中,还需要进一步配置
配置方法如下:
打开IEDA主页面-->file-->Project Structure-->
选择第一个
然后知道mysql依赖包的文件位置
接下来
这样纸就算导入配置完成啦
3.4 配置数据库properties文件
在src文件下,dao包和utils包同层级 新建一个文件
命名为db.properties
当这个文件的图标变化的时候,就说明成功了
打开这个文件 写入链接的数据库信息
driver=com.mysql.cj.jdbc.Driver //加载驱动程序 url=jdbc:mysql://localhost:3306/test //localhost表示本机 test表示要操作的数据库 user=root //用户名 password=weiyihang666 //密码
4.具体代码展示 实现对mysql数据表的基本操作(具体实现代码放在文章末尾)
4.1 .mysqlutil包代码如下
4.2 .dao层 GetInfo接口代码如下
4.3 . dao层 GetInfoImpl接口实现类 代码如下
包括主函数测试方法
运行结果
5.基本实现JAVA通过JDBC实现对数据库的基本操作
当然还有好多数据库的操作可以实现 这里就不多做叙述,
最后代码如下 仅供参考
mysqlutil包
public class MysqlUtil { public static String driver=null; //驱动程序 public static String url=null; //数据库地址 public static String user=null; //用户名 public static String password=null; //密码 static{ //怎么读取properties里在内容 Properties properties = new Properties(); // try { InputStream in = new FileInputStream("src/db.properties"); //创建一个FileInputStream实例 properties.load(in); //用于读取db.properties文件中的内容 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //分别读取赋值信息 driver = properties.getProperty("driver"); url = properties.getProperty("url"); user = properties.getProperty("user"); password = properties.getProperty("password"); } public static Connection getMysqlConnection() { //注册驱动 Connection conn = null; try { //加载数据库驱动类 Class.forName(driver); //获取数据库链接对象 conn = DriverManager.getConnection(url,user,password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } //简单的判断返回值的状态是否为空 public static void closeResource(ResultSet rs, PreparedStatement pre, Connection conn) { try { if(rs!=null) { rs.close(); } if(pre!=null) { pre.close(); } if(conn!=null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
GetInfo接口代码
public interface GetInfo { public void getInfo() throws SQLException; //查询全表数据 public void IntoInfo(String id,String dname,String type) throws SQLException; //传入相应的数据 public void deleteInfo(String id) throws SQLException; //传入id删除对应数据 public void removeInfo(String id,String str) throws SQLException; //传入id修改对应数据 }
GetInfoImpl接口实现类和主函数测试代码
public class GetInfoImpl implements GetInfo{ public static void main(String[] args) throws SQLException { GetInfoImpl getInfoImpl=new GetInfoImpl(); //初始化对象实例 开始测试 getInfoImpl.getInfo(); //查询全表信息 getInfoImpl.IntoInfo("1005","校园志愿者","志愿服务"); //插入新的数据 getInfoImpl.getInfo(); //查询全表信息 getInfoImpl.removeInfo("1005","单车摆放志愿者"); //修改1005的dname getInfoImpl.getInfo(); //查询全表信息 getInfoImpl.deleteInfo("1005"); //删除1005的数据 getInfoImpl.getInfo(); //查询全表信息 } @Override public void getInfo() throws SQLException { String sql_select = "select * from demo"; //操作的mysql语句 Connection conn = MysqlUtil.getMysqlConnection(); //加载驱动 PreparedStatement pre = conn.prepareStatement(sql_select); //将mysql语句执行结果 ResultSet rs = pre.executeQuery(); //增删改 executeUpdate() 查 executeQuery() rs就是一个结果集 while(rs.next()) { String id = rs.getString("id"); //rs 通过getstring获取值 String dname = rs.getString("dname"); String type = rs.getString("type"); System.out.println("项目id: "+id); //输出打印 System.out.println("项目名称: "+dname); System.out.println("项目类型: "+type); System.out.println(); } MysqlUtil.closeResource(rs,pre,conn); //关闭 } @Override public void IntoInfo(String id, String dname, String type) throws SQLException { String sql_select ="insert into demo(id,dname,type) values(?,?,?)"; // ?的作用就是一个占位符 Connection conn = MysqlUtil.getMysqlConnection(); PreparedStatement pre = conn.prepareStatement(sql_select); pre.setString(1, id); //通过setstring方法 将id传入mysql语句中 pre.setString(2, dname); pre.setString(3, type); int rs = pre.executeUpdate(); //增删改 executeUpdate() 查 executeQuery() if(rs==1){ System.out.println("数据添加成功!"); } else { System.out.println("数据添加失败!"); } } @Override public void deleteInfo(String id) throws SQLException { String sql_delete ="delete from demo where id= ?"; Connection conn = MysqlUtil.getMysqlConnection(); PreparedStatement pre = conn.prepareStatement(sql_delete); pre.setString(1, id); int rs = pre.executeUpdate(); //增删改 executeUpdate() 查 executeQuery() if(rs==1){ System.out.println("删除成功!"); } else { System.out.println("删除失败!"); } } @Override public void removeInfo(String id,String str) throws SQLException { String sql_delete ="update demo set dname = ? where id= ?"; Connection conn = MysqlUtil.getMysqlConnection(); PreparedStatement pre = conn.prepareStatement(sql_delete); pre.setString(1, str); pre.setString(2, id); int rs = pre.executeUpdate(); //增删改 executeUpdate() 查 executeQuery() if(rs==1){ System.out.println("修改成功!"); } else { System.out.println("修改失败!"); } } }
制作不易 ,点点关注收藏呗!!!