java实现对mysql数据库的操作_java 对mysql数据库的基本操作
java对mysql数据库的操作分为以下几个步骤:
1.获取连接:
获取连接需要两步,一是使用DriverManager来注册驱动,二是使用DriverManager来获取Connection对象。
Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/mydb1”,”root”,”123”);
JDBC规定url的格式由三部分组成,每个部分中间使用逗号分隔。
l第一部分是jdbc,这是固定的;
l第二部分是数据库名称,那么连接mysql数据库,第二部分当然是mysql了;
l第三部分是由数据库厂商规定的,我们需要了解每个数据库厂商的要求,mysql的第三部分分别由数据库服务器的IP地址(localhost)、端口号(3306),以及DATABASE名称(mydb1)组成。
还可以在url中提供参数:
jdbc:mysql://localhost:3306/mydb1?useUnicode=true&characterEncoding=UTF8
useUnicode参数指定这个连接数据库的过程中,使用的字节集是Unicode字节集;
characherEncoding参数指定穿上连接数据库的过程中,使用的字节集编码为UTF-8编码。请注意,mysql中指定UTF-8编码是给出的是UTF8,而不是UTF-8。要小心了!
2.获取Statement
在得到Connectoin之后,说明已经与数据库连接上了,下面是通过Connection获取Statement对象的代码:
Statement stmt = con.createStatement();
Statement是用来向数据库发送要执行的SQL语句的!
3.发送sql语句
//增加,删除,修改,返回的i为影响的行数
String sql ="xxxx";
int i = stmt.excuteUpdate(sql); //查询 返回为结果集,可以同过rs.next()进行遍历
//rs.next();//光标移动到第一行
//rs.getInt(1);//获取第一行第一列的数据
String sql = “select * from user”;
ResultSet rs = stmt.executeQuery(sql);
4.关闭资源
与IO流一样,使用后的东西都需要关闭!关闭的顺序是先得到的后关闭,后得到的先关闭。
rs.close();
stmt.close();
con.close();
自己简单的封装了一下,让访问的移植性变得较好一些,还未用到连接池:
package com.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 连接池,访问量大时,多开几条访问通道,少了,就减少访问通道
* */
public class DbUtile {
//定义几个变量分别用于存放数据库信息,便于数据库的移植
private String getDriver="com.mysql.jdbc.Driver";
private String getUrl="jdbc:mysql://localhost:3306/db1";
private String getUser="root";
private String getPwd="root";
Connection conn = null;
Statement state = null;
ResultSet rs = null;
public Connection getConn()
{
try {
Class.forName(getDriver);
try {
conn = DriverManager.getConnection(getUrl, getUser, getPwd);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
System.out.println("无法找到驱动类!");
}
return conn;
}
public Statement getState()
{
try {
state = getConn().createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return state;
}
//用于修改,更新,增加
public int getModify(String sql)
{
int i=0;
try {
getState().executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeRs();
closeState();
closeConn();
}
return i;
}
//用于查询
public ResultSet getSelect(String sql)
{
try {
rs = getState().executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}//这里不能关闭资源,,否则rs是空的
return rs;
}
//用于关闭资源
public void closeConn()
{
try {
if(conn!=null&&!conn.isClosed())
{
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeState()
{
try {
if(state!=null&&!state.isClosed())
{
state.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeRs()
{
try {
if(rs!=null&&!rs.isClosed())
{
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
这是测试的类,查询时,不要在查询函数离关闭资源,否则拿到的是空的集合:
package com.db;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestDbUtile {
public static void main(String[] args)
{
DbUtile dbu = new DbUtile();
String sql = "insert into duser (name,pwd,email,ddate) values ('laowang','123','abc@163.com',now())";
dbu.getModify(sql);
String sql2="select * from duser";
ResultSet rs = dbu.getSelect(sql2);
try {
while(rs.next())
{
System.out.print(rs.getInt("id")+"\t");
System.out.print(rs.getString("name")+"\t");
System.out.print(rs.getString("pwd")+"\t");
System.out.print(rs.getString("email")+"\t");
System.out.println(rs.getDate("ddate")+"\t");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
dbu.closeRs();
dbu.closeState();
dbu.closeConn();
}
}
}
有不当之处还请指教~~~
java实现对mysql数据库的操作_java 对mysql数据库的基本操作相关推荐
- java实现对properties类型文件的读写
在java项目中,我们通常会有一些配置属性的数据,采用properties文件对数据进行管理是很有必要的,尤其是在属性值改变和项目环境发生变化时,所以特地总结一下对properties文件的最常见的操 ...
- Java实现对PDF文件添加水印
Java实现对PDF文件添加水印 目录 Java实现对PDF文件添加水印 导入依赖 工具方法 效果 最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf 导入依赖 <!-- 对P ...
- java实现对pdf文件压缩,拆分,修改水印,添加水印
最近要实现一个文件上传,并且在线预览上传文件的功能,设计思路是:把上传的文件通过openoffice转成pdf文件,并将pdf文件以流的形式返回到浏览器,由于上传的部分文件过大,转成pdf后传回前端浏 ...
- VC实现对Excel表格的操作
转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/09/25/2190485.html 通过VC实现对Excel表格的操作的方法有多种, ...
- java验证xml格式是否正确的是_spring源码附录(1)java实现对XML格式的验证
最近在看spring源码,涉及到xml文档的解析.xml文档的格式验证,发现自己对xml解析的基础较为薄弱,本篇博客复习下DOM方式解析xml(即spring解析xml的方式). DOM解析XML是将 ...
- [原创]C#通过引用Office Excel (2007) 组件实现对Excel文件的操作
对用应用软件来说,将报表转出为Excel文件,进行二次加工,或者根据Excel模版填充数据,是非常常用的.实现对Excel文件的操作,如将报表转出为Excel或根据已有的Excel模版进行填充,有很多 ...
- java实现对rar文件和zip文件的解压缩
java实现对rar文件和zip文件的解压缩 一.对zip文件的解压缩 1.1 使用ZIP4J实现 zip4j官方说明: Create, Add, Extract, Update, Remove fi ...
- JAVA ftps设置_Java使用JSCH实现对FTPS服务器文件操作
SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式.SF ...
- java实现对HDFS增删改查(CRUD)等操作
实现对HDFS增删改查CRUD等操作 1 查找 列出某个目录下的文件名称,hdfs命令如下所示: hdfs dfs –ls/usr/app java代码片段: [plain] view plain c ...
最新文章
- 【c语言】蓝桥杯算法训练 1的个数
- 电脑主板主要外部接口
- Python面试总结(四)ip正则与三次握手四次挥手
- 6本书,读懂2022年最火的边缘计算
- 硬核数据研究:年轻人为什么这么喜欢“哈哈哈哈”?
- Git upstream
- bootstrap中让图片自适应不同的分辨率的方法
- linux 系统添加字体,linux服务器下添加字体
- 微信小程序获取二维码:报错47001 data format error
- phpMyAdmin 登陆超时(1440秒未活动),请重新登录问题
- window下编译ffmpeg--mys2下安装对应库编译ffmpeg
- Py交易的基本遵循原则.
- 新视智科“5G+工业互联网”产品线南山研发中心揭牌成立,助力制造业转型创新发展
- 使用java开发spark实战
- 算法-回溯backtrack
- 八、面向对象的三大特性:封装,继承,多态
- Three.js--》实现3d官网模型展示
- CCF NOI1041. 志愿者选拔【sort】
- WordPress主题添加鼠标点击特效
- 结对项目——自动生成小学四则运算题目的命令行程序(基于Python)