Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查
前言
java连接数据库完整流程为:
1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式。
2,通过获得的信息完成JDBC实现连接数据库。
注:连接前请导入jar包,例:连接mysql数据库需要导入mysql-connector-java-5.1.39-bin.jar包
连接数据库的三种方式
三种方式中二,三最为常用
一,直接获取数据库信息,并jdbc驱动连接
这里写代码片 public static Connection connection() {
//获得连接数据库连接
Connection conn=null;
try {
//初始化Driver类,注册驱动
Class.forName("com.mysql.jdbc.Driver");
//连接数据库
conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/web", "root", "root");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
二,获得db.properties文件中的配置信息获得
注解:
ResourceBundle 类的作用就是读取资源属性文件(properties),根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。
public class Jdbc_Conn2 {
private static String driver;
private static String url;
private static String username;
private static String password;
static {
//通过ResourceBundle获得db文件中的信息
ResourceBundle bundle = ResourceBundle.getBundle("db");
//通过key值获得db文件中的配置信息
driver=bundle.getString(driver);
url=bundle.getString(url);
username=bundle.getString(username);
password=bundle.getString(password);
}
public static Connection mysqlconn() {
//连接数据库
Connection conn=null;
Class.forName(driver);
conn= DriverManager.getConnection(url, username, password);
return conn;
}
三、通过IO流获得db文件中配置信息
注解:
*首先,调用对象的getClass()方法是获得对象当前的类类型,这部分数据存在方法区中,而后在类类型上调用getClassLoader()方法是得到当前类型的类加载器,在Java中所有的类都是通过加载器加载到虚拟机中的,
而且类加载器之间存在父子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就是保证是和类类型同一个加载器加载的。
最后调用了类加载器的getResourceAsStream()方法来加载文件资源*
public class Jdbc_Conn3 {
private static String dirver;
private static String url;
private static String username;
private static String password;
static {
//IO流
InputStream is=Jdbc_Conn3.class.getClassLoader().getResourceAsStream("db.properties");
Properties props=new Properties();
try {
props.load(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dirver=props.getProperty("driver");
url=props.getProperty("url");
username=props.getProperty("username");
password=props.getProperty("password");
}
public static Connection mysqlconn() {
//1,获得连接数据库的驱动
Connection conn=null;
Class.forName(dirver);
conn= DriverManager.getConnection(url, username, password);
return conn;
}
连数据库后,使用完毕需要关闭连接
关闭数据库需要关闭以下资源:1,Connection(连接).2,PreparedStatement(预编译).3,Result(结果集)
public static void mysqlcolse(Connection con,PreparedStatement pstem,ResultSet rs) {
try {
if(con!=null) {
con.close();
}
if(pstem!=null)
{
pstem.close();
}
if(rs!=null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
完成以上步骤便是一个连接数据库的java模板了,以上连接方法与关闭方法存于一个java文件中即可完成。
增、删、改、查
前言
1 以下代码在完成连接数据库的基础之上完成,通过java实现对数据库的增删改查
一、查询功能
注:
Connection中prepareStatement()方法,提供占位符(?),占位符设置参数setXXX(index,value)。优点:改动参数时,不需改动sql,通过占位符修改。
ResultSet类,作为查询条件的返回集的作用
//先声明对象,优点在于方便下方任意代码块调用对象信息。
Connection con=null;
PreparedStatement pstm=null;
ResultSet rs=null; @Test
public void testJv3()
{
//1,通过JDBC的模板连接上数据库
con=Jdbc_Conn3.mysqlcon();
//2,编写sql语句
String sql="select * from user where uid=?";
try {
//3.预编译需要执行的sql
pstm = con.prepareStatement(sql);
//prepareStatement中占位符?,通过setXXX(index,values)来进行设置,index从1开始,
pstm.setInt(1, 1);
//执行sql并返回查询结果
ResultSet rs = pstm.executeQuery();
if(rs.next())
{
String password=rs.getString(3);
String uname=rs.getString(2);
System.out.println(uname+":"+password);
}else {
System.out.println("没有结果");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
Jdbc_Conn3.mysqlcolse(con, pstm, rs);
} }
额外知识点:查询条件输出方式
if():当只有一条结果时,可用if
while():当有多条结果时,可用while
二、增,删,改
增删改,只需要改对应sql即可,以下代码为模板。
PreparedStatement pstm=null;
Connection con=null;
//1,实例化MyDataSource
ComboPooledDataSource mdsc= new ComboPooledDataSource();
//2.从MyDataSource的池中获得连接对象
try {
con= mdsc.getConnection();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//3.写sql
String sql="insert into user values (null,?,?)";
//4,预编译
try {
pstm= con.prepareStatement(sql);
pstm.setString(1, "zj");
pstm.setString(2, "zj");
int col=pstm.executeUpdate();
if(col>0) {
System.out.println("添加成功:"+col+"条数");
}else {
System.out.println("添加失败");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
JDBCUtils_V3.release(con, pstm, null);
}
}
Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查的更多相关文章
- C++ API方式连接mysql数据库实现增删改查
这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...
- JDBC基础篇(MYSQL)——通过JDBC连接数据库的三种方式
package day01_jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManage ...
- Android,java,php开发最基本的知识,mysql sqlite数据库的增删改查代理,sql语句
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985转载请说明出处. 下面是代码: 增加:insert into 数据表(字段1,字段2,字段3) valu ...
- 注册Jdbc驱动程序的三种方式
注册Jdbc驱动程序的三种方式 1. Class.forName("com.mysql.jdbc.Driver"); 2. DriverManager.registerDriver ...
- java 实现md5加密的三种方式与解密
java 实现md5加密的三种方式 CreateTime--2018年5月31日15点04分 Author:Marydon 一.解密 说明:截止文章发布,Java没有实现解密,但是已有网站可以免费 ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类) 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据 ...
- Java操作数据库实现"增删改查"
本文主要讲解JDBC操作数据库 主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一 DriverManager类 DriverManage类 ...
- 通过jdbc连接MySql数据库的增删改查操作
一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...
随机推荐
- 设计模式之行为类模式PK
行为类模式包括: 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 行为型模式涉及到算法和对象间职责的分配 行为类模式关注 ...
- Sharepoint模态窗体(实战)
分享人:广州华软 无名 一. 前言 对SharePoint二次开发时,需要知道SharePoint有什么.没有什么,才能在开发过程中避免重复造轮子.SharePoint提供了许多开箱即用的功能,这次要 ...
- Windows Server 2016 安装虚拟机版黑群晖
硬件配置 Dell R730 CPU: Intel(R) Xeon(R) CPU E5-2603 v4 @1.70GHz(6 cores) Ram: 16Gb HDD: 系统-600GB SAS X2 ...
- 你在为谁工作——IT帮深圳分站2019年3月线下活动回顾
对于工作,在每个人的心中,它所占的份量都是不一样的.有的人活着是为了工作,有的人工作是为了更好的生活. 在3月24日下午,北京.上海与深圳三地我们同步举办了关于工作这个话题的沙龙活动. 我们深圳分站参 ...
- Storm入门(七)可靠性机制代码示例
一.关联代码 使用maven,代码如下. pom.xml 参考 http://www.cnblogs.com/hd3013779515/p/6970551.html MessageTopology. ...
- cmake 入门实战
当你的程序只有一个源文件时,直接就可以用gcc命令编译它 g++ main.cc 这样会输出一个main.out https://www.hahack.com/codes/cmake/
- ASP.NET开发中修改代码而不重启网站
我们在做网站开发的时候,通常是写好了一个功能就要进行测试,Visual Studio上点“Start Debugging”(快捷键是F5),这是调试模式,也有直接运行模式,“Start Without ...
- 利用 vue-cli 构建一个 Vue 项目
一.项目初始构建 现在如果要构建一个 Vue 的项目,最方便的方式,莫过于使用官方的 vue-cli . 首先,咱们先来全局安装 vue-cli ,打开命令行工具,输入以下命令: $ npm inst ...
- 在linux(centos)系统安装nginx教程
最近在切换服务器操作系统,简单记录一下 一.安装nginx需要如下环境 1.gcc 编译依赖gcc环境,如果没有gcc环境,需要安装gcc yum install gcc-c++ 2.PCRE ...
- 【Android Studio安装部署系列】二十三、Android studio查看Gradle版本号
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 File——Project Structure 单击Project 可以看到,当前项目的gradle版本号是4.4. 参考资料 An ...