java jdbc连接和使用详细介绍
发布时间 - 2026-01-10 22:05:39 点击率:次java jdbc连接和使用

jdbc
导入驱动
//jar是已经打包好的class文件集,可以引用到其他工程中
//Build Path中add external jars导入
连接JDBC
1. 加载驱动
Class.from("com.mysql.jdbc.Driver");
创建连接
//导包使用 java.sql.*; String jdbc="jdbc:mysql://localhost:3306/student?user=root&password=&characterEncoding=utf-8";//student是表名 Connection conn = DriverManager.getConnection(jdbc);
2. 注意 数据库打开之后一定要记得关。
conn.close();
1. 执行SQL语句 (创建表,插入,删除,更新)
使用Statemant
Statemant st = conn.createStatemant(); int row = st.executeUpdate(sql语句);//不能做查询操作。
使用PrepareStatement
可以使用?占位符来代替你需要传递的参数
String sql = "insert into " + TABLENAME + "(name,subject,score) values(?,?,?)"; PrepareStatement pt = conn.prepareStatement(sql); //给每一位占位符设置值,下标从1开始 pt.setString(1,score.getName()); pt.setString(2.score.getSubject()); pt.setDouble(3,score.getScore()); //使用无参的方法 pt.executeUpdate();
1.查询操作
static List<Score> queryScore(Connection pconn, Score pScore)
throws SQLException {
ArrayList<Score> mlist = new ArrayList<>();
String sql = "select * from " + TABLENAME + " where name = ?";
PreparedStatement ps = pconn.prepareStatement(sql);
ps.setString(1, pScore.getName());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
// 这里可以通过rs获取所有结果
String subject = rs.getString("subject");
int id = rs.getInt("id");
double score = rs.getDouble("score");
mlist.add(new Score(id, pScore.getName(), subject, score));
}
return mlist;
}
下面是一个小程序
//建立数据库连接类
public class DAO {
// 放问数据库的链接地址
static String jdbc = "jdbc:mysql://localhost:3306/student?user=root&password=&characterEncoding=utf-8";
// 打开链接
public static Connection connection() {
// 使用JDBC的步骤
// 1. 加载JDBC驱动
try {
// 类的全名 包名+类名
Class.forName("com.mysql.jdbc.Driver");
// 2. 连接数据库
Connection conn = DriverManager.getConnection(jdbc);
return conn;
} catch (Exception e) {
System.out.println("驱动加载失败");
return null;
}
}
}
//分数类
public class Score {
String name;
String id;
String subject;
double score;
public Score(String name, String subject, double score) {
super();
this.name = name;
this.subject = subject;
this.score = score;
}
@Override
public String toString() {
return "Score [name=" + name + ", id=" + id + ", subject=" + subject
+ ", score=" + score + "]";
}
public Score(String name, String id, String subject, double score) {
super();
this.name = name;
this.id = id;
this.subject = subject;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
//实现类
public class Test {
public static String TABLENAME = "score";
public static void main(String[] args) {
try {
Connection conn = DAO.connection();
if (conn != null) {
System.out.println("链接上了");
// createTable(conn);
// 插入一条记录
// Score score = new Score("李四 ", "Android", 98);
// System.out.println(addScore2(conn, score));
// deleteScore(conn, score);
// updateScore(conn, score);
List<Score> list = queryScoreByName(conn, "王五"); //queryAllScore(conn);
for (Score score : list) {
System.out.println(score);
}
conn.close();
} else {
System.out.println("链接失败 ");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 创建一张表
public static boolean createTable(Connection conn) {
// 开始执行sql语句
String sql = "create table "
+ TABLENAME
+ "(id integer primary key auto_increment,name varchar(3) not null,subject varchar(20) not null,score double)";
// 要执行一条语句,需要一个执行的类 Statement
try {
Statement st = conn.createStatement();
int result = st.executeUpdate(sql);
System.out.println(result);
if (result != -1)
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
// 添加一条记录
public static boolean addScore(Connection conn, Score score)
throws SQLException {
String sql = "insert into " + TABLENAME
+ "(name,subject,score) values('" + score.getName() + "','"
+ score.getSubject() + "'," + score.getScore() + ")";
System.out.println(sql);
Statement st = conn.createStatement();
int row = st.executeUpdate(sql);
if (row > 0)
return true;
return false;
}
// 添加一条记录2
public static boolean addScore2(Connection conn, Score score)
throws SQLException {
// 占位符?来代替需要设置的参数
String sql = "insert into " + TABLENAME
+ "(name,subject,score) values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
// 必须给定?所代表的值
ps.setString(1, score.getName());
ps.setString(2, score.getSubject());
ps.setDouble(3, score.getScore());
// 调用无参的方法
int row = ps.executeUpdate();
if (row > 0)
return true;
return false;
}
public static boolean deleteScore(Connection conn, Score score)
throws SQLException {
String sql = "delete from " + TABLENAME + " where name=? and subject=?";
// 创建PrepareStatement
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, score.getName());
ps.setString(2, score.getSubject());
// ps.setDouble(3, score.getScore());
// 执行
int row = ps.executeUpdate();
System.out.println(row);
if (row > 0)
return true;
return false;
}
public static boolean updateScore(Connection conn, Score score)
throws SQLException {
// 修改 score人他的科目的成绩
String sql = "update " + TABLENAME
+ " set score=? where name=? and subject=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setDouble(1, score.getScore());
ps.setString(2, score.getName());
ps.setString(3, score.getSubject());
int row = ps.executeUpdate();
System.out.println(row);
if (row > 0)
return true;
return false;
}
public static List<Score> queryAllScore(Connection conn)
throws SQLException {
String sql = "select * from " + TABLENAME;
// 开始查询
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
List<Score> list = new ArrayList<Score>();
while (rs.next()) {
// 这里可以通过rs获取所有结果
String id = rs.getString("id");
String name = rs.getString("name");
String subject = rs.getString("subject");
double score = rs.getDouble("score");
list.add(new Score(name, id, subject, score));
}
// 结束
return list;
}
public static List<Score> queryScoreByName(Connection conn, String name)
throws SQLException {
String sql = "select * from " + TABLENAME + " where name=?";
PreparedStatement pt = conn.prepareStatement(sql);
pt.setString(1, name);
ResultSet rs = pt.executeQuery();
List<Score> list = new ArrayList<>();
while (rs.next()) {
String subject = rs.getString("subject");
String id = rs.getString("id");
double score = rs.getDouble("score");
list.add(new Score(name, id, subject, score));
}
return list;
}
# java
# jdbc
# jdbc详解及实例
# jdbc实例代码
# Java多线程编程之使用Exchanger数据交换实例
# Java利用剪贴板实现交换程序间数据的方法
# java常见的字符串操作和日期操作汇总
# 浅谈java中的对象、类、与方法的重载
# Java删除文件、目录及目录下所有文件的方法实例
# Java利用正则表达式提取数据的方法
# Java 定时器(Timer)及线程池里使用定时器实例代码
# java 内部类(匿名类
# 匿名对象
# 静态内部类)详解及实例
# java 线程锁详细介绍及实例代码
# Java 实现汉字转换为拼音的实例
# java 交换两个数据的方法实例详解
# 可以通过
# 加载
# 是一个
# 上了
# 来代替
# 可以使用
# 能做
# 每一位
# 李四
# 连接数据库
# 王五
# 是表名
# createStatemant
# DriverManager
# getConnection
# int
# SQL
# Statemant
# conn
# close
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
如何在建站宝盒中设置产品搜索功能?
*服务器网站为何频现安全漏洞?
微信小程序 require机制详解及实例代码
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Android实现代码画虚线边框背景效果
如何快速上传建站程序避免常见错误?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
MySQL查询结果复制到新表的方法(更新、插入)
重庆市网站制作公司,重庆招聘网站哪个好?
如何快速完成中国万网建站详细流程?
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
Laravel如何使用.env文件管理环境变量?(最佳实践)
七夕网站制作视频,七夕大促活动怎么报名?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
如何在Windows服务器上快速搭建网站?
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
个人网站制作流程图片大全,个人网站如何注销?
如何快速查询网站的真实建站时间?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
如何快速搭建自助建站会员专属系统?
如何为不同团队 ID 动态生成多个非值班状态按钮
WordPress 子目录安装中正确处理脚本路径的完整指南
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
高防服务器如何保障网站安全无虞?
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何在IIS7中新建站点?详细步骤解析
JavaScript实现Fly Bird小游戏
创业网站制作流程,创业网站可靠吗?
Laravel如何创建自定义中间件?(Middleware代码示例)
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
如何在云指建站中生成FTP站点?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
IOS倒计时设置UIButton标题title的抖动问题
Python数据仓库与ETL构建实战_Airflow调度流程详解
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何快速搭建高效简练网站?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程

