问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

你有一个简单的数据库的源代码吗?最好用Java实现的...

发布网友 发布时间:2022-04-08 09:45

我来回答

1个回答

热心网友 时间:2022-04-08 11:14

class ConnectionProvider{
private static String JDBC_DRIVER;
private static String DB_URL;
private static String DB_USER;
private static String DB_PASSWORD;

public ConnectionProvider()
{
JDBC_DRIVER = "com.mysql.jdbc.Driver"
DB_URL = "jdbc:mysql://localhost:3306/u-disk";
DB_USER = "root";
DB_PASSWORD = "root"
};
public Connection getConnection()
{
try {
Class.forName(JDBC_DRIVER);
} catch (Exception e) {
System.out.println("驱动文件路径有误!");
}
}
Connection con = null;
try {
con = DriverManager.getConnection(DB_URL, DB_USER,
DB_PASSWORD);
} catch (SQLException e) {
System.out.println("数据库连接建立异常!\n@shy2850@" + e.getMessage() +
e.getCause());
}
System.out.println("得到连接:Connection " + ConnectionPool.connections.size() + 1);
return new ConnectionImpl(con);
}
}

可以使用这个包装的数据库连接数据源在DAO工具类中使用:

package com.jdbc;

import java.sql.*;

/**课题:封装数据库的增删改查的工具类的实现。
*
* 假设相关数据库的表结构如下:
* 表名:user
* 列名及属性:id(int 自增),name(varchar(20)),tele(char(12)),birthday(date)
* @author shy2850
*/
public class UserDAO {

Connection conn;

public UserDAO(Connection conn) {
this.conn = conn;
}

public int save(User user) throws SQLException {
String sql = "insert into user values(0,?,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getName());
pstmt.setString(2, user.getTele());
pstmt.setDate(3, user.getBirthday());
int n = pstmt.executeUpdate();
pstmt.close();
return n;
}

public int delete(User user) throws SQLException{
String sql = "delete from user where id = "+user.getId();
Statement stmt = conn.createStatement();
int n = stmt.executeUpdate(sql);
stmt.close();
return n;
}

public int update(User user) throws SQLException{
String sql = "update user set name=?, tele=?, birthday=? where id = "+user.getId();
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(2, user.getName());
pstmt.setString(3, user.getTele());
pstmt.setDate(4, user.getBirthday());
int n = pstmt.executeUpdate(sql);
pstmt.close();
return n;
}

public User getUser(Integer id) throws SQLException{
String sql = "select * from user where id = " + id;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
User user = getUserFromResultSet(rs);
rs.close();
stmt.close();
return user;
}

static User getUserFromResultSet(ResultSet rs) throws SQLException{
Integer id = rs.getInt("id");
String name= rs.getString("name");
String tele= rs.getString("tele");
Date birthday = rs.getDate("birthday");
return new User(id, name, tele, birthday);
}
}
/**
* 构建数据库表的java类映射
*/
class User{
private Integer id;
private String name;
private String tele;
private Date birthday;

public User() {
}
public User(Integer id, String name, String tele, Date birthday) {
super();
this.id = id;
this.name = name;
this.tele = tele;
this.birthday = birthday;
}

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getTele() {
return tele;
}

public void setTele(String tele) {
this.tele = tele;
}

public Date getBirthday() {
return birthday;
}

public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
iPhone XR电量百分比怎么设置 Django如何使用网页嵌套网页(2023年最新解答) 社保之前工作缴了 后面工作不缴。自己要怎么续上?自己缴要缴多少?每... 壁挂炉数字不亮了怎么回事了解壁挂炉数字不亮的原因及解决方法_百度知 ... 单反长镜头和短镜头什么区别 ai的剪切蒙版快捷键是什么 自学当程序员需要哪些基础 程序员,需要学什么课程 想当一名出色的程序员数学必须要很好吗 华为路由器192.168.1.1怎样设置? 聚京手机靓号网靠谱吗? 我制作了个EXCL表格想在表中的一个单元格里插入两条斜线,怎么弄啊? 电脑开机出现欢迎之后就黑屏了 要等个几分钟才好 还有网络图标上面有个红叉 不能上网 该怎么 电脑开机在欢迎那个地方好久才进去,网络连接有个红叉,没网络 电脑开机网络连接显示红叉,要等一分钟才能上网,以前都是开机就连上的 win7系统,开机时网络一直处于断开状态(红叉图标)也没有网络,过大概2分钟才好,然后才开始识别网络。 Win7开机后网络连接显示红叉,宽带连接一直连接不上显示错误651,大概过一分钟以后重拨才能连接成功 台式机开机后网络图标红叉,需要几分钟才好,这几天才开始的,我用的无线路由器连接台式机。 电脑开机后,网络连接是个红叉,要很久才会连接上网络。怎么破 草莓和巧克力冰棍做的炒酸奶你吃过吗?浇上酸奶,猜猜最后什么味 草莓坚果炒酸奶的做法,草莓坚果炒酸奶怎么做 草莓炒酸奶怎么做好吃,草莓炒酸奶的家常做 蓝牙耳机能用在微信视频聊天上吗 苹果手机连接华为B5蓝牙耳机支持微信视频通话吗 什么蓝牙耳机可以微信视频聊天 linux中sudo的问题 linux怎么提升root权限啊?用su和sudo 也不行啊? 语言栏里这么弄出这个图标 为什么我搜狗输入法一打开图标就成这样了? 怎么输出特殊符号 聚京靓号可靠吗? 为什么uu加速器显示网络异常,无法连接服务器。wifi是好的,uu加速器权限都开了,是小米手机。 小米手机游戏加速里的迅游网络加速可以和uu加速器一起用吗? 我的小米为什么更新系统之后就用不了UU加速器了?有谁知道吗 电动剃须刀进水怎么办? 飞利浦剃须刀掉水里面赶紧捡起,请问还能用吗 吃过的人来评价一下“味千拉面” 飞利浦电动剃须刀HQ360进水不能用了? 充电剃须刀进水了还能再充电用吗 飞利浦剃须刀进水了怎么办? 电动剃须刀被水泡了怎么办? 味千拉面 待遇怎么样?急~~~ 电动剃须刀沾了水一直响怎么办 广州有几家‘味千拉面’?具体位置在那? 觉得在哈尔滨开一家味千拉面怎么样???会盈利么? 飞利浦剃须刀进水 味千拉面的服务好?彻底让我失望!(湛江嘉信茂店) 我的飞利浦剃须刀es-rc60型,曾经泡过水,现在开不了,怎么回事? 味千拉面 机场店怎么样 发一条什么样的说说能让朋友还钱,有5.6个,不是针对个人的。