java链接并操作数据库
链接准备
- MySQL数据库驱动(连接器)。mysql-connector-java-x.x.xx.jar会在MySQL安装时提供,若Mysql是默认安装路径,则连接器在:C:\Program Files (x86)\MySQL\Connector.J 5.1文件夹里,然后在项目中建立一个lib文件夹,拷贝连接器放进去:

2.将数据库驱动导入至项目的工作空间中,使得其内部包含的包和类都加入到编译环境中。(导入方式,选中上面一步的连接器,右键Buid path)

下面建立一个链接操作类来描述链接和操作方法:
- 建立一个类Test
1 public class Test {
2
3 public static void main(String[] args) {
4
5 }
6 }
- 第一步:在代码中初始化数据库驱动:Class.forName("com.mysql.jdbc.Driver").newInstance();,并添加异常处理块。
1 //第一步,在代码中初始化数据库驱动:
2 Class.forName("com.mysql.jdbc.Driver").newInstance();//初始化数据库驱动
- 第二步:使用DriverManager链接数据库:
1 //第二步,使用DriverManager链接数据库:
2 Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydbone", "root", "199751hwl");
- 第三步:获得一个会话:
1 //3.获得一个会话:
2 statement = con.createStatement();
- 第四步:statement.execute执行SQL语句并返回结果:
- 查操作
1 if (statement.execute("SELECT * from person")) {//查
2
4 rs = statement.getResultSet();
5 while( rs.next() ) { // 依次获得查询结果,每次执行nest,换一行
6 String name = rs.getString("persName");//获取字段
7 String sex = rs.getString("persSex");
8 System.out.println(name+"\t"+sex);
9 }
11 }
12 else {
13 System.out.println("没有数据!");
14 }
15
- 增操作
1 if (statement.execute("INSERT into person VALUE(7,'小发发','男','学习')")) {
2 System.out.println("异常!");//增操作这里没有返回
3 }
4 else {
5 System.out.println("增加成功!");
6 }
- 第五步,关闭结果获取,关闭会话和链接
1 finally {
2 try {
3 //第五步,关闭结果获取,关闭会话和链接
4 statement.close();
5 con.close();
6 rs.close();
7 } catch (SQLException e1) {
8 e1.printStackTrace();
9 }
10 }
- 一个完整的小栗子:
1 import java.sql.*;
2
3 public class TestOne {
4
5 public static void main(String[] args) {
6
7 ResultSet rs = null;
8 Statement statement = null;
9 Connection con = null;
10
11 try {
12
13 //第一步,在代码中初始化数据库驱动:
14 Class.forName("com.mysql.jdbc.Driver").newInstance();//初始化数据库驱动
15 //第二步,使用DriverManager链接数据库:指定链接数据库的信息
16 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydbone?useUnicode=true&characterEncoding=UTF-8","root","199751hwl");
17 //第三步,获得一个会话:
18 statement = con.createStatement();
19 //第四步,执行SQL并查除结果集合
20 if (statement.execute("SELECT * from person")) {//查
21 rs = statement.getResultSet();
22 while( rs.next() ) { // 依次获得查询结果,每次执行nest,换一行
23 String name = rs.getString("persName");//获取字段
24 String sex = rs.getString("persSex");
25 System.out.println(name+"\t"+sex);
26 }
27 }
28 else {
29 System.out.println("增加成功!");
30 }
31
32 } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) {
33 e.printStackTrace();
34 }finally {
35 try {
36 //第五步,关闭结果获取,关闭会话和链接
37 statement.close();
38 con.close();
39 rs.close();
40 } catch (SQLException e1) {
41 e1.printStackTrace();
42 }
43 }
44 }
45 }
java链接并操作数据库的更多相关文章
- SQL语言(二) java怎样连接操作数据库中的数据
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.S ...
- Java 链接SQL Server 数据库
1 //Java 连接 SQL Server数据库 2 public static final String DRIVERNAME="com.microsoft.sqlserver.jdbc ...
- java中如何操作数据库(增删改查)
EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean.实体B ...
- Java之JDBC操作数据库
DBC JDBC就是一套接口,真正执行的是jar包里得实现类,通过泛型对象来执行实现类里的方法. 步骤: ###1.导入驱动jar包到工程中 ###2.编写代码注册驱动,我们要让程序知道用的是哪个驱动 ...
- JAVA连接、操作数据库的DBHelper
工厂模式的DBHelper 1 import java.sql.Connection; 2 import java.sql.DriverManager; 3 import java.sql.Prepa ...
- Java伪界面操作数据库的小实例
首先在Mysql中有两个表fruit和login: package com.zuoye; import java.sql.*; import java.util.*; public class Tes ...
- Java程序要操作数据库,一定要使用JDBC技术吗?
<!-- MySQL驱动,连接数据库用,由数据库厂商提供 --> <dependency> <groupId>mysql</groupId> <a ...
- Java实例---简单的数据库操作
源码分析 DAOFactory.java package cn.ftl.mysql ; public class DAOFactory { public static IEmpDAO getIEmpD ...
- Python学习笔记 - day11 - Python操作数据库
MySQL的事务 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关,MySQL的两种引擎如下: 1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID ...
随机推荐
- vscode 1.32.x按下鼠标左键无法拖曳选择,而旧一点的版本1.30.2可以
最近升级vscode后,无法通过鼠标左键选择文本,恢复到旧版本1.30.2就可以了. 另外:1.32.x和1.31.1都不正常 进一步测试发现:在中文输入法下(无论中英输入模式),都有问题:切换到纯英 ...
- 前端~定位属性position(relative、absolute、fixed)的分析
前端~定位属性position(relative.absolute.fixed)的分析 1,简单了解: relative:移动自身时,参考自身的原来位置而移动,移动子元素(子元素设置了absolute ...
- Python - 进度条库 tqdm
前言 在写生成器的时候,网上看到一个进度条库,感觉蛮有意思,记录下 这个库感觉只有在调试的时候会用到,不做深入学习 内置库,不需要安装 示例代码 from tqdm import tqdm for i ...
- ICCV2021 | MicroNet:以极低的 FLOPs 改进图像识别
前言:这篇论文旨在以极低的计算成本解决性能大幅下降的问题.提出了微分解卷积,将卷积矩阵分解为低秩矩阵,将稀疏连接整合到卷积中.提出了一个新的动态激活函数-- Dynamic Shift Max,通过 ...
- 针对Autocad 2014 第二次安装不上的问题
针对Autocad 2014 第二次安装不上的问题 1. 以下为卸载过程,不用管. 2. 卸载完之后,右击"开始",点击"运行",得到下图: 并输入:&qu ...
- JAVA安全基础之反射
JAVA安全基础之反射 在JAVA安全中,反射是一个经常使用的技术,所以熟悉使用反射是非常必要的.下面就简单的讲下JAVA的反射的用法 什么是反射 每个类都有对应的Class类对象,该Class类对象 ...
- sticky -- position定位属性sticky值之粘性定位;
sticky简述 sticky 是css定为新增的属性:可以说是相对定位relative和固定定位fixed的结合: 它主要用在对scroll事件的监听上,简单说在滑动过程中,某个元素的距离其父元素的 ...
- PTA 面向对象程序设计6-2 统计数字
对于给定的一个字符串,统计其中数字字符出现的次数. 类和函数接口定义: 设计一个类Solution,其中包含一个成员函数count_digits,其功能是统计传入的string类型参数中数字字符的个数 ...
- Django学习day12随堂笔记
每日测验 """ 1.什么是cookie和session,你能描述一下它们的由来和工作机制吗(切勿糊弄,敷衍了事) 2.django中如何操作cookie和session ...
- 快乐中秋,SQL小白入门指南
目录 创建表 最基本的创建 怎么查看一个已经建好的表的信息呢 修改字段 插入数据 修改和删除数据 修改 删除 第一个查询 条件语句 使用age的大小比较,查看大于16岁的学生: 使用多个条件并联,大于 ...