博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC+MYSQL初始学习
阅读量:5214 次
发布时间:2019-06-14

本文共 6859 字,大约阅读时间需要 22 分钟。

JDBC+MYSQL初始学习

一、学习准备

Eclipse 开发工具  + mysql数据库+navicat 数据库连接工具

Mysql的数据库连接驱动jar包  + testing测试集成+maven工具集成

Jar的获取方法:

1、直接下载需要的jar,导入项目中使用。

2、在maven工程中加入依赖:本文使用的maven依赖:

mysql
mysql-connector-java
5.1.38
org.testng
testng
6.0

二、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
getUsers() throws Exception { // 3.操作数据库 实现增删改查 Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select * from user"); List
list = new ArrayList
(); 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
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); }}

 

转载于:https://www.cnblogs.com/lilin0719/p/5373132.html

你可能感兴趣的文章
Nginx配置upstream实现负载均衡1
查看>>
“ipconfig不是内部命令或外部命令”解决方法
查看>>
linux cron定时任务初级使用教程
查看>>
(C#控件)MessageBox
查看>>
Excel:写入Excel-单纯写入
查看>>
Tomcat详细用法学习(五)
查看>>
2017 icpc亚洲区域赛沈阳站
查看>>
UI基础--封装cell滑动时的动画
查看>>
2017.9.1 Java中的程序方法
查看>>
Django 框架 基础
查看>>
HDU3306 Another kind of Fibonacci 矩阵
查看>>
CSS笔记-文本缩略显示
查看>>
S7-200PLC间的PPI通信
查看>>
第三章家庭作业3.65
查看>>
javascript有哪些优秀的库,把你喜欢的都说出来吧
查看>>
Web后端 JAVA学习之路
查看>>
Arc076_E Connected?
查看>>
Java线程:新特征-锁(上)(转)
查看>>
MySQL Troubleshoting:Waiting on query cache mutex
查看>>
盒子模型&position定位
查看>>