java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家。

jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate、Mybatis。

但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查的。

回归正题,先来看看我们的开发环境:

Java语言、Eclipse开发工具、Mysql数据库、Navicat数据库可视化工具。

开发环境的安装搭建及使用请自己查阅资料(很简单的),这里不详细阐述。

第一步,创建数据库,利用Navicat数据库可视化工具随便建立一个数据库,在库中建立一张表,表里给几个字段(记得给个id字段,唯一主键,自增序列),再随便给上两条数据便好,用来测试功能,如图:

第二步,打通数据库(这个例子希望大家自己动手敲敲,耽误不了多少时间,熟悉一下jdbc如何和数据库打交道,故以图示之),如图:

第三步,改造DBUtil类,方便在dao层获得数据库的连接,代码如下:

 1 package com.czgo.db;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6
 7 public class DBUtil
 8 {
 9     private static final String URL = "jdbc:mysql://127.0.0.1:3306/imooc";
10     private static final String UNAME = "root";
11     private static final String PWD = "root";
12
13     private static Connection conn = null;
14
15     static
16     {
17         try
18         {
19             // 1.加载驱动程序
20             Class.forName("com.mysql.jdbc.Driver");
21             // 2.获得数据库的连接
22             conn = DriverManager.getConnection(URL, UNAME, PWD);
23         }
24         catch (ClassNotFoundException e)
25         {
26             e.printStackTrace();
27         }
28         catch (SQLException e)
29         {
30             e.printStackTrace();
31         }
32     }
33
34     public static Connection getConnection()
35     {
36         return conn;
37     }
38 }

第四步,创建实体类(如上图,大家观察包的分配,我们将采用MVC思想设计本实例,有关于mvc的设计思想,请大家自行学习,这里不多说)代码如下:

 1 package com.czgo.model;
 2
 3 import java.io.Serializable;
 4
 5 /**
 6  * 实体类:女神类
 7  *
 8  * @author AlanLee
 9  *
10  */
11 public class Goddess implements Serializable
12 {
13     private static final long serialVersionUID = 1L;
14
15     /**
16      * 唯一主键
17      */
18     private Integer id;
19     /**
20      * 姓名
21      */
22     private String name;
23     /**
24      * 手机号码
25      */
26     private String mobie;
27     /**
28      * 电子邮件
29      */
30     private String email;
31     /**
32      * 家庭住址
33      */
34     private String address;
35
36     public Integer getId()
37     {
38         return id;
39     }
40
41     public void setId(Integer id)
42     {
43         this.id = id;
44     }
45
46     public String getName()
47     {
48         return name;
49     }
50
51     public void setName(String name)
52     {
53         this.name = name;
54     }
55
56     public String getMobie()
57     {
58         return mobie;
59     }
60
61     public void setMobie(String mobie)
62     {
63         this.mobie = mobie;
64     }
65
66     public String getEmail()
67     {
68         return email;
69     }
70
71     public void setEmail(String email)
72     {
73         this.email = email;
74     }
75
76     public String getAddress()
77     {
78         return address;
79     }
80
81     public void setAddress(String address)
82     {
83         this.address = address;
84     }
85 }

第五步,dao层的实现(这里由于是小例子没有写dao接口,实际工作中大型项目应该是要写dao接口的,便于程序的维护和扩展),代码如下:

  1 package com.czgo.dao;
  2
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 import java.util.ArrayList;
  8 import java.util.List;
  9
 10 import com.czgo.db.DBUtil;
 11 import com.czgo.model.Goddess;
 12
 13 /**
 14  * 数据层处理类
 15  *
 16  * @author AlanLee
 17  *
 18  */
 19 public class GoddessDao
 20 {
 21     /**
 22      * 查询全部女神
 23      *
 24      * @return
 25      * @throws SQLException
 26      */
 27     public List<Goddess> query() throws SQLException
 28     {
 29         List<Goddess> goddessList = new ArrayList<Goddess>();
 30
 31         // 获得数据库连接
 32         Connection conn = DBUtil.getConnection();
 33
 34         StringBuilder sb = new StringBuilder();
 35         sb.append("select id,name,mobie,email,address from goddess");
 36
 37         // 通过数据库的连接操作数据库,实现增删改查
 38         PreparedStatement ptmt = conn.prepareStatement(sb.toString());
 39
 40         ResultSet rs = ptmt.executeQuery();
 41
 42         Goddess goddess = null;
 43
 44         while (rs.next())
 45         {
 46             goddess = new Goddess();
 47             goddess.setId(rs.getInt("id"));
 48             goddess.setName(rs.getString("name"));
 49             goddess.setMobie(rs.getString("mobie"));
 50             goddess.setEmail(rs.getString("email"));
 51             goddess.setAddress(rs.getString("address"));
 52
 53             goddessList.add(goddess);
 54         }
 55         return goddessList;
 56     }
 57
 58     /**
 59      * 查询单个女神
 60      *
 61      * @return
 62      * @throws SQLException
 63      */
 64     public Goddess queryById(Integer id) throws SQLException
 65     {
 66         Goddess g = null;
 67
 68         Connection conn = DBUtil.getConnection();
 69
 70         String sql = "" + " select * from imooc_goddess " + " where id=? ";
 71
 72         PreparedStatement ptmt = conn.prepareStatement(sql);
 73
 74         ptmt.setInt(1, id);
 75
 76         ResultSet rs = ptmt.executeQuery();
 77
 78         while (rs.next())
 79         {
 80             g = new Goddess();
 81             g.setId(rs.getInt("id"));
 82             g.setName(rs.getString("name"));
 83             g.setMobie(rs.getString("mobie"));
 84             g.setEmail(rs.getString("email"));
 85             g.setAddress(rs.getString("address"));
 86         }
 87
 88         return g;
 89     }
 90
 91     /**
 92      * 添加女神
 93      *
 94      * @throws SQLException
 95      */
 96     public void addGoddess(Goddess goddess) throws SQLException
 97     {
 98         // 获得数据库连接
 99         Connection conn = DBUtil.getConnection();
100
101         String sql = "insert into goddess(name,mobie,email,address) values(?,?,?,?)";
102
103         PreparedStatement ptmt = conn.prepareStatement(sql);
104
105         ptmt.setString(1, goddess.getName());
106         ptmt.setString(2, goddess.getMobie());
107         ptmt.setString(3, goddess.getEmail());
108         ptmt.setString(4, goddess.getAddress());
109
110         ptmt.execute();
111     }
112
113     /**
114      * 修改女神资料
115      *
116      * @throws SQLException
117      */
118     public void updateGoddess(Goddess goddess) throws SQLException
119     {
120         Connection conn = DBUtil.getConnection();
121
122         String sql = "update goddess set name=?,mobie=?,email=?,address=? where id=?";
123
124         PreparedStatement ptmt = conn.prepareStatement(sql);
125
126         ptmt.setString(1, goddess.getName());
127         ptmt.setString(2, goddess.getMobie());
128         ptmt.setString(3, goddess.getEmail());
129         ptmt.setString(4, goddess.getAddress());
130
131         ptmt.execute();
132     }
133
134     /**
135      * 删除女神
136      *
137      * @throws SQLException
138      */
139     public void deleteGoddess(Integer id) throws SQLException
140     {
141         Connection conn = DBUtil.getConnection();
142
143         String sql = "delete from goddess where id=?";
144
145         PreparedStatement ptmt = conn.prepareStatement(sql);
146
147         ptmt.setInt(1, id);
148
149         ptmt.execute();
150     }
151 }

第六步,控制层的实现(控制层在此处用来模仿控制层和界面,直接在这里构建数据,如果是界面的数据则通过请求传递接收参数即可,控制层的代码大家可以根据实际情况去更改完善,这里只是给大家抛砖引玉,做个简单的测试,时间比较紧,希望大家理解),代码如下:

 1 package com.czgo.action;
 2
 3 import java.sql.SQLException;
 4 import java.util.List;
 5
 6 import com.czgo.dao.GoddessDao;
 7 import com.czgo.model.Goddess;
 8
 9 /**
10  * 控制层,直接在这里构建数据,界面的数据则通过请求传递接收即可,亦是同理
11  *
12  * @author AlanLee
13  *
14  */
15 public class GoddessAction
16 {
17     /**
18      * 新增女神
19      *
20      * @param goddess
21      * @throws Exception
22      */
23     public void add(Goddess goddess) throws Exception
24     {
25         GoddessDao dao = new GoddessDao();
26         goddess.setName("苍井空");
27         goddess.setMobie("52220000");
28         goddess.setEmail("[email protected]");
29         goddess.setAddress("北京红灯区");
30         dao.addGoddess(goddess);
31     }
32
33     /**
34      * 查询单个女神
35      *
36      * @param id
37      * @return
38      * @throws SQLException
39      */
40     public Goddess get(Integer id) throws SQLException
41     {
42         GoddessDao dao = new GoddessDao();
43         return dao.queryById(id);
44     }
45
46     /**
47      * 修改女神
48      *
49      * @param goddess
50      * @throws Exception
51      */
52     public void edit(Goddess goddess) throws Exception
53     {
54         GoddessDao dao = new GoddessDao();
55         dao.updateGoddess(goddess);
56     }
57
58     /**
59      * 删除女神
60      *
61      * @param id
62      * @throws SQLException
63      */
64     public void del(Integer id) throws SQLException
65     {
66         GoddessDao dao = new GoddessDao();
67         dao.deleteGoddess(id);
68     }
69
70     /**
71      * 查询全部女神
72      *
73      * @return
74      * @throws Exception
75      */
76     public List<Goddess> query() throws Exception
77     {
78         GoddessDao dao = new GoddessDao();
79         return dao.query();
80     }
81
82     /**
83      * 测试是否成功
84      *
85      * @param args
86      * @throws SQLException
87      */
88     public static void main(String[] args) throws SQLException
89     {
90         GoddessDao goddessDao = new GoddessDao();
91
92         List<Goddess> goddessList = goddessDao.query();
93
94         for (Goddess goddess : goddessList)
95         {
96             System.out.println(goddess.getName() + "," + goddess.getMobie() + "," + goddess.getEmail());
97         }
98     }
99 }

最后,让我们看一下main方法的运行结果是否成功:

这样,一个简单的java jdbc 连接mysql数据库 实现增删改查便完成了,大家可以在查询的基础上试着去做一个高级查询,也就是多条件查询来巩固jdbc的使用。

现在21:00,还没有吃晚饭,时间比较紧,所以没有给大家一一测试增删改查的功能,闲着没事做蛋疼的可以都去测试一下,如果发现问题,希望能够指正小Alan,小Alan有空的时候便去修正博文中的一些错误。

最后的最后,祝大家今晚都能够做一个美美的梦,小Alan吃晚饭去了,下次再会!

时间: 2024-10-03 11:58:03

java jdbc 连接mysql数据库 实现增删改查的相关文章

使用JDBC连接MySQL数据库操作增删改查

目录 1.首先这个Myeclipse的包名以及一些实现的类(这样子写是我的习惯) 2.接下来我们创建数据库(MySQL) 3.在数据库里面添加数据 4.首先是BaseDao,这个是重中之重,注意那个数据库的名字,强调所在的包名 5.这个是实体类,我相信大家都会写,注意所在的包名 6.接下来我们写BookingDao 7.下面我们写Servlet 1.查询的Servlet 2.添加的Servlet 3.修改的Servlet 4.删除的Servlet 8.配置web.xml 9.再次写JSP页面 1

jdbc连接Mysql数据库,增删改查

package util; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; public class DbManager { public static final String url="jdbc:mysql://localhost/jdbctest"; p

【Mysql】Java中对Mysql数据库的增删改查、Java的System类

这部分也是所谓JDBC.网站数据源的内容,把名字弄得很高深似得,实际上只是Java中对Mysql数据库的增删改查的内容.非常简单,之前写了这么多Mysql的内容,没好好总结一下,实在是不应该.今天就实现一个Java中对Mysql数据库的增删改查,随便带点Java取出当前系统的系统名与系统时间的知识,完成一个还算有点意思的小例子. 一.基本目标 首先,在Mysql数据库中有一张名为testtable的空表,id为自增列,username,class都是文本列,但是class里面都存放数字,也就是整

php连接MySQL数据库及增删改查

  1.连接MySQL数据库$conn = new mysqli($host,$user,$password); $conn -> query('set names utf8'); //设置字符编码,避免存入中文数据乱码$conn -> select_db('db'); //选择自己建立的数据库(db) 1.1 判断连接状态if (!$conn) { die("数据库连接异常");} //数据库的创建$db = "create database db";

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

mysql数据库的增删改查语句

连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [库名] 当前选择的库状态:SELECT DATABASE(); 创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 显示数据表字段:describe 表名; 当前库数据表结构:show tables; =============

【java】用javaSE来实现对mysql数据库的增删改查

主程序: import Bean.StudentBean;import Impl.StudentImpl; public class T7 {    public static void main(String[] args) {        StudentImpl stdimp = new StudentImpl();//        StudentBean student = new StudentBean("halala", "woman", "

java jdbc 连接mysql 数据库

JDBC连接MySQL 加载及注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); Class.forName("com.mysql.jdbc.Driver").newInstance(); JDBC URL 定义驱动程序与数据源之间的连接 标准语法: <protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data source identif

Node 连接Mysql并进行增删改查

NPM: NPM的全称是Node Package Manager,类似于ruby的gem,Python的PyPL.setuptools,PHP的pear,是Nodejs中的包管理器.Nodejs自身提供了基本的模块.但是在这些基本模块上开发实际应用需要较多的工作.NPM上已经有近万个Nodejs库或框架,这些库从各个方面可以帮助Nodejs的开发者完成较为复杂的应用. 安装NPM(Unix下): curl http://npmjs.org/install.sh | sh 利用NPM安装Node模