首页 / MYSQL / JDBC+MYSQL初始学习
JDBC+MYSQL初始学习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JDBC+MYSQL初始学习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6248字,纯文字阅读大概需要9分钟。
内容图文
![JDBC+MYSQL初始学习](/upload/InfoBanner/zyjiaocheng/462/61b4176048a94fb0a056fb11459c1319.jpg)
一、学习准备
Eclipse 开发工具 + mysql数据库+navicat 数据库连接工具
Mysql的数据库连接驱动jar包 + testing测试集成+maven工具集成
Jar的获取方法:
1、直接下载需要的jar,导入项目中使用。
2、在maven工程中加入依赖:本文使用的maven依赖:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.0</version> </dependency>
二、JDBC简单实用步骤:
Jdbc连接数据库操作,主要分为三个步骤:本文以mysql为例操作说明:
2.1加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
2.2获取数据库连接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
2.3对数据库的表结构进行CURD操作
三、JDBC增、删、改、查
3.1 通过navicat 连接本地mysql 创建user表结构:
3.2 建立相关的类来实现jdbc的crud的操作
3.1.1 模型类User
User类用于和数据库user表映射,方便CURD的实时操作。
/** * */ package com.lilin.maven.service.jdbc; /** * @author lilin * */ public class User { private Integer id; /** * 用户名称 */ private String name; /** * 用户密码 */ private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String toString() { return "user 的名称是" + name + " user的密码是:" + password; } }
3.1.2 工具类JdbcUtil
工具类主要定义了数据库连接的相关属性:URL 、USER、PASSWORD
工具类在静态块中获取了数据库的连接,存放于私有CONN中,同时对外提供了访问连接的公共方法:getConnection
/** * */ package com.lilin.maven.service.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * @author lilin * */ public class JdbcUtil { public static final String URL = "jdbc:mysql://127.0.0.1:3306/test"; public static final String USER = "root"; public static final String PASSWORD = "1"; private static Connection conn = null; /** * 静态块 获取数据库的连接 */ static { try { // 1.加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 2.获取数据库连接 conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } /** * 提供获取连接的调用方法 * * @return */ public static Connection getConnection() { return conn; } }
3.1.3 逻辑层类UserService
UserService类,主要是通过调用工具类,获取数据库连接,然后使用连接,配合好编写的sql语句,来对数据库中的user表来进行CURD操作,包含了一系列的常用的处理。
/** * */ package com.lilin.maven.service.jdbc; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; /** * @author lilin * */ public class UserService { private Connection connection = JdbcUtil.getConnection(); /** * 新增用户信息 * * @param user * @throws Exception */ public void addUser(User user) throws Exception { String sql = " insert into user(NAME,PASS_WORD)values(?,?)"; // 预编译sql语句 在excute的时候真正执行 PreparedStatement ptmt = connection.prepareStatement(sql); // 传递参数 补充完整的sql ptmt.setString(1, user.getName()); ptmt.setString(2, user.getPassword()); ptmt.execute(); } /** * 删除用户信息 * * @param user * @throws Exception */ public void deleteUser(Integer id) throws Exception { String sql = " delete from user where ID=?"; // 预编译sql语句 在excute的时候真正执行 PreparedStatement ptmt = connection.prepareStatement(sql); // 传递参数 补充完整的sql ptmt.setInt(1, id); ptmt.execute(); } /** * 更新用户信息 * * @param user * @throws Exception */ public void updateUser(User user) throws Exception { String sql = " update user set NAME=? ,PASS_WORD=? where ID=?"; // 预编译sql语句 在excute的时候真正执行 PreparedStatement ptmt = connection.prepareStatement(sql); // 传递参数 补充完整的sql ptmt.setInt(3, user.getId()); ptmt.setString(1, user.getName()); ptmt.setString(2, user.getPassword()); ptmt.execute(); } /** * 查询单个用户信息 * * @param user * @throws Exception */ public User getUserByName(String name) throws Exception { String sql = " select * from user where NAME=?"; // 预编译sql语句 在excute的时候真正执行 PreparedStatement ptmt = connection.prepareStatement(sql); // 传递参数 补充完整的sql ptmt.setString(1, name); ResultSet resultSet = ptmt.executeQuery(); User user = null; while (resultSet.next()) { user = new User(); user.setId(resultSet.getInt("ID")); user.setName(resultSet.getString("NAME")); user.setPassword(resultSet.getString("PASS_WORD")); } return user; } /** * 查询所有的用户信息 * * @return * @throws Exception */ public List<User> getUsers() throws Exception { // 3.操作数据库 实现增删改查 Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select * from user"); List<User> list = new ArrayList<User>(); User user = null; while (resultSet.next()) { user = new User(); String name = resultSet.getString("NAME"); String passWord = resultSet.getString("PASS_WORD"); user.setName(name); user.setPassword(passWord); list.add(user); } return list; } }
3.1.4 testNG测试类 jdbctest
JdbcTest中,实现了多个测试方法,userserice中的CURD的方法,全部有对应的测试function:通过运行测试方法,以及配合使用navicat实时查询数据库的user表的数据的实时变化,以便于验证JDBC对于mysql的数据库操作的正确性。
/** * */ package com.lilin.maven.service.jdbc; import java.util.List; import java.util.Scanner; import org.testng.annotations.Test; /** * @author lilin * */ public class JdbcTest { private UserService userService = new UserService(); @Test public void testGetUsers() throws Exception { List<User> users = userService.getUsers(); for (User user : users) { System.out.println(user); } } @Test public void testAddUser() throws Exception { User user = new User(); user.setName("李林"); user.setPassword("12345"); userService.addUser(user); } @Test public void testUpdateUser() throws Exception { User user = new User(); user.setId(1); user.setName("bb"); user.setPassword("12345"); userService.updateUser(user); } @Test public void testDeleteUser() throws Exception { userService.deleteUser(4); } @Test public void testgetUserByName() throws Exception { User user = userService.getUserByName("bb"); System.out.println(user); } }
JDBC+MYSQL初始学习
标签:
本文系统来源:http://www.cnblogs.com/lilin0719/p/5373132.html
内容总结
以上是互联网集市为您收集整理的JDBC+MYSQL初始学习全部内容,希望文章能够帮你解决JDBC+MYSQL初始学习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。