Java中连接MySql数据库的几种方法
浅谈Java中Mysql数据库的连接与操作
浅谈Java中Mysql数据库的连接与操作浅谈Java中Mysql数据库的连接与操作随着互联网的快速发展,数据库成为了现代软件开发中不可或缺的部分。
而在Java开发中,Mysql数据库的使用是非常普遍的。
本文将深入探讨Java中Mysql数据库的连接与操作。
一、Mysql数据库概述Mysql是一种关系型数据库管理系统,被广泛应用于Web应用程序开发中。
它具有跨平台、高性能、高可靠性等特点,因此备受开发者们的欢迎。
二、Java中的Mysql数据库连接在Java中连接Mysql数据库,我们可以使用JDBC(Java Database Connectivity)技术。
JDBC提供了一组与数据库通信的API,使得开发者能够方便地连接和操作数据库。
1. 导入Mysql驱动在使用JDBC连接Mysql数据库之前,首先需要导入Mysql驱动。
可以通过下载并添加Mysql Connector/J驱动jar包到项目中,然后使用Class.forName()方法加载驱动类。
2. 创建连接连接是使用JDBC连接数据库的核心对象。
我们可以使用DriverManager.getConnection()方法创建一个数据库连接对象。
在创建连接时,需要传入数据库的URL、用户名和密码等参数。
3. 执行SQL语句通过连接对象,我们可以创建一个Statement对象,然后使用它执行SQL语句。
可以通过Statement的executeQuery()方法执行查询语句,使用executeUpdate()方法执行更新语句。
4. 处理结果执行查询语句后,可以通过结果集ResultSet获取返回的结果。
可以使用ResultSet的next()方法逐行遍历结果集,并使用getXXX()方法获取各个字段的值。
5. 关闭连接在使用完数据库连接后,需要手动关闭连接。
可以使用Connection的close()方法关闭连接。
由于数据库连接是一种资源,及时关闭可以释放资源,防止资源泄露。
Java连接MySql数据库,并且实现插入、删除、更新、选择操作
天之火–Qutr的专栏君子终日乾乾,夕惕若,厉,无咎。
HomeJava连接MySql数据库,并且实现插入、删除、更新、选择操作!这是我最近写的一个连接MySql数据库的一个例子,主要实现了插入,删除,更新,选择操作,用的环境是j2sdk1.4.2_08,Eclipse3.1。
以前我的同事用Python 写了同样的类,非常的好用,支持了我们公司的大部分业务,现在我们慢慢改用Java了,所以我用Java重写了一遍。
一方面在今后的业务中能够用到,另一方面熟悉一下Java。
下面我把在Eclipse3.1下怎样配置数据库连接信息简单说一下。
1.启动Eclipse3.1。
2.建立一个Java project就叫DbConnect 吧,再在该Project下建立一个新类也叫DbConnect 吧。
3.右击DbConnect.java文件点import,选择Archive file然后选择你的mysql-connector-java-3.1.8-bin.jar文件,点Finish。
你会看到有好些文件被加载进来,OK这就是连接MySql所需的驱动信息。
如果到了这里你都成功的话那么恭喜你,你已经成功一半了!:)4.接下来把我下面的代码copy到你的Java文件中,修改相关的数据库连接信息运行一下。
OK?我说一下那个mysql-connector-java-3.1.8-bin.jar文件,其实这就是一个MySql的驱动,各数据库厂商提供了不同的适用于JDBC的驱动使得在Java中连接数据库非常简单。
这里我就不多说了,以后我会写篇专门介绍数据库驱动的文章。
关于MySql的驱动还有更新版本的,你需要到MySql的网站上去下载,这个网上到处都是,我就不多说了。
下面看程序,有些地方我写了详细的注释应该能看懂。
这个类是非常有特色的,在每个方法的传人参数和返回值不变的情况下,希望高手能提出改进意见。
多指教,谢谢!/*** 数据库连接、选择、更新、删除演示*///import java.sql.*;import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.DriverManager;import java.util.*;public class DbConnect{/////////////////////////////////////////———–>>>数据成员and 构造函数private Connection dbconn;private Statement dbstate;private ResultSet dbresult;DbConnect(){dbconn = null;dbstate = null;dbresult = null;}/////////////////////////////////////////———–>>>类方法public void print(String str)//简化输出{System.out.println(str);}//end print(…)/*** 连接MySql数据库* @param host* @param port* @param dbaName* @param usName* @param psw* @return bool值,连接成功返回真,失败返回假*/public boolean dbConnection(String host, String port, String dbaName, String usName, String psw){String driverName = "com.mysql.jdbc.Driver";//"org.gjt.mm.mysql.Driver"两个驱动都可以用String dbHost = host;//数据库的一些信息String dbPort = port;String dbName = dbaName;String enCoding = "?useUnicode=true&characterEncoding=gb2312"; //解决MySql中文问题,要连续写不能空格String userName = usName;String Psw = psw;String url = "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName + enCoding;try{Class.forName(driverName).newInstance();dbconn = DriverManager.getConnection(url, userName, Psw);//getConnection(url, userName, Psw)从给的driver中选择合适的去连接数据库//return a connection to the URL}catch(Exception e){print("url = " + url); //发生错误时,将连接数据库信息打印出来print("userName = " + userName);print("Psw" + Psw);print("Exception: " + e.getMessage());//得到出错信息}if (dbconn != null)//dbconn != null 表示连接数据库成功,由异常保证!?return true;elsereturn false;}// end boolean dbConnection(…)/*** 对数据库表进行选择操作!* @param tableName 数据库表名* @param fieles 字段名* @param selCondition 选择条件* @return 一个含有map的List(列表)*/public ArrayList dbSelect(String tableName, ArrayList fields, String selCondition){ArrayList mapInList = new ArrayList();String selFields = "";for (int i = 0; i<fields.size(); ++i)selFields += fields.get(i) + ", ";String selFieldsTem = selFields.substring(0, selFields.length() – 2);//根据String的索引提取子串try{dbstate = dbconn.createStatement();String sql = "select " + selFieldsTem + " from " + tableName + selCondition;print("sql = " + sql);try{dbresult = dbstate.executeQuery(sql);}catch(Exception err){print("Sql = " + sql);print("Exception: " + err.getMessage());}while(dbresult.next()){Map selResult = new HashMap();selResult.put("message_type", dbresult.getString("message_type"));selResult.put("message_content",dbresult.getString("message_content"));mapInList.add(selResult);}}catch(Exception e){print("Exception: " + e.getMessage());}return mapInList;}//end String dbSelect(…)/*** 对数据库表中的记录进行删除操作* @param tableName* @param condition* @return bool值,表示删除成功或者失败。
Java连接mysql数据库的详细教程(推荐)
Java连接mysql数据库的详细教程(推荐)该教程是⾯向那些不知道如何通过java连接mysql数据库的新⼿,所以该教程⽤的⽅法不是最优的⽅法,但求是最好理解的⽅法。
需要的⼯具:eclipse、mysql、mysql的驱动mysql驱动链接:如果该链接下载不了的话,可以私信我1.在eclipse中创建⼀个⼯程:jdbc2.在⼯程下创建lib⽂件夹⿏标右键点击jdbc⼯程 ——> New ——>Folder、⽂件夹命名为lib3.导⼊mysql驱动解压上述连接的压缩包,找到:mysql-connector-java-5.1.7-bin.jar⽂件,复制到jdbc⼯程下的lib⽂件夹⾥然后⿏标右键点击该驱动——>Build Path——>Add to Build Path,最终显⽰如下图,表⽰你的驱动已经导⼊成功啦4.在src下创建⼀个包,包内创建⼀个class类⿏标右键点击src → New → package,包名⾃⼰任意取在该包下创建⼀个class类,名字为:ConnectionTest5.在ConnectionTest⾥的代码如下注:该⽅法并⾮连接MySQL的最佳⽅法package com.shaocoder.connection;import java.sql.Connection;import java.sql.Driver;import java.sql.DriverManager;import java.sql.SQLException;public class ConnectionTest {public static void main(String[] args) {Connection conn = null;try {//1.数据库连接的4个基本要素//①JDBC URL⽤于标识⼀个被注册的驱动程序,驱动程序管理器通过这个URL选择正确的驱动程序,从⽽建⽴到数据库的连接; //jdbc:表⽰URL中的协议//mysql:⼦协议,⽤于标识mysql数据库驱动程序//localhost:本机的IP地址//3306:端⼝号//test:表⽰访问test数据库String url = "jdbc:mysql://localhost:3306/test";//user:登录数据库的⽤户名String user = "root";//password:⽤户名对应的密码,这些都是⾃⼰之前设定的String password = "123456";//mySql的驱动:com.mysql.jdbc.DriverString driverName = "com.mysql.jdbc.Driver";//2.实例化DriverClass clazz = Class.forName(driverName);Driver driver = (Driver) clazz.newInstance();//3.通过DriverManager来注册驱动DriverManager.registerDriver(driver);//4.通过DriverManager的getConnection⽅法,获取Connection类的对象conn = DriverManager.getConnection(url, user, password);//5.打印出conn对象System.out.println(conn);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {//当conn不为空时if(conn != null)//关闭conn资源conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}点击运⾏,运⾏结果如下代表连接mysql数据库成功上述⽅法的最优写法⼀、创建jdbc.properties⽂件⿏标右键点击src → New → File,⽂件命名为jdbc.properties,点击finish⼆、在jdbc.properties⽂件⾥写上连接数据库必备的4个基本信息(注意:等号两边不能加空格)三、具体实现代码如下运⾏程序,能打印出conn对象的具体信息,则成功连接数据库package com.shaocoder.connection;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;public class ConnectionTest {public static void main(String args[]) {InputStream is = null;Connection conn = null;try {//通过类加载器访问jdbc.properties⽂件,转化为输⼊流is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");Properties pros = new Properties();pros.load(is);String user = pros.getProperty("user");String password = pros.getProperty("password");String url = pros.getProperty("url");String driverClass = pros.getProperty("driverClass");Class.forName(driverClass);conn = DriverManager.getConnection(url, user, password);System.out.println(conn);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {if(conn != null)conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {if(is != null)is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}总结到此这篇关于Java连接mysql数据库的详细教程的⽂章就介绍到这了,更多相关java 连接mysql数据库内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
java mysqldatasource 用法
java mysqldatasource 用法Java MysqlDataSource 用法1. 什么是 MysqlDataSource?MysqlDataSource 是 Java 中用于连接和操作 MySQL 数据库的一个类。
它是接口的一个实现,允许开发人员使用标准的 JDBC API 来访问数据库。
2. 导入 MysqlDataSource要使用 MysqlDataSource,首先需要在代码中导入相关的类。
在Java 中,可以使用以下语句导入 MysqlDataSource 类:import ;3. 创建 MysqlDataSource 实例要使用 MysqlDataSource 类,需要创建一个 MysqlDataSource 的实例。
可以使用以下代码创建一个实例:MysqlDataSource dataSource = new MysqlDataSource();4. 设置数据库连接信息在创建 MysqlDataSource 实例后,需要设置相关的数据库连接信息,包括服务器地址、端口号、数据库名称、用户名和密码等。
以下是设置这些信息的示例代码:("localhost");(3306);("mydatabase");("username");("password");5. 设置其他连接选项除了基本的数据库连接信息外,还可以设置其他连接选项,例如连接超时时间、编码方式等。
以下是设置一些常用选项的示例代码:(5000); // 设置连接超时时间为 5 秒("UTF-8"); // 设置编码方式为 UTF-8(true); // 启用 SSL 加密连接6. 获取数据库连接设置完数据库连接信息后,可以通过调用 MysqlDataSource 的getConnection()方法来获取一个数据库连接。
Java连接mysql数据库攻略
使用java连接mysql的图解方法首先进行软件下载一.软件下载mysql/jdbc/mysql-front等Mysql请百度最新的mysql版本JDBC驱动下载版本:3.1.8/downloads/connector/j/3.1.htmlMysql界面插件:mysql-front下载版本镜像:HongKong(我下回来安装就是中文版了)http://www.mysqlfront.de/download.html二.软件安装打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”,出现如下界面:mysql安装向导启动,按“Next”继续选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom (用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures,will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。
在上面的“MySQL Server (mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation (文档)”也如此操作,以保证安装所有文件。
点选“Change...”,手动指定安装目录。
填上安装目录,我的是“F:\Server\MySQL\MySQL Server5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。
按“OK”继续。
返回刚才的界面,按“Next”继续。
确认一下先前的设置,如果有误,按“Back”返回重做。
按“Install”开始安装。
正在安装中,请稍候,直到出现下面的界面这里是询问你是否要注册一个的账号,或是使用已有的账号登陆,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。
Java连接MySQL数据库
Java与Myql数据库的连接问题在我痛苦的try了N多次之后我终于明白,一个.java文件如何与mysql数据库连同并且可以在小黑屏里显示数据库里面的内容,数据库的驱动文件的安装实在是件头疼的事,实际上是不需要安转的,按如下步骤即可轻松解决。
1.在网上下载一个数据库驱动程序,例如我下载的是(0002mysqlconnectorjava517(1).rar)大小是7.71MB,解压之,到0002mysqlconnectorjava517(1)或者到当前文件,在mysql-connector-java-5.1.7文件里有个mysql-connector-java-5.1.7-bin.jar文件,可以将此文件解压也可以不解压,下面有a、b两种方法(结果是一样),首先我的文件是这样放的:a.我的那个没解压的.jar文件在D:\mysql-connector-java-5.1.7这个文件夹里面(就是那个694kb的压缩包)b.我把这个.jar文件解压后放在的D:\mysql-connector-java-5.1.7这个文件夹里面(就是那个mysql-connector-…)文件夹2.配置环境变量(这是最要命的)我的电脑-->属性-->高级-->环境变量(N)-->系统变量-->新建classpath如果是上面的a情况那么是这样配的变量值是:D:\mysql-connector-java-5.1.7\mysql-connector-java-5.1.7-bin.jar;请切记变量值后面一定要有一个分号----【;】切记要有这个不然就出现如下异常错误并且在每次设置环境变量之后DOS框是要重新启动的不然没有生效的是。
D:\Java>javac database.javaD:\Java>java databaseException in thread "main" ng.NoClassDefFoundError: databaseCaused by: ng.ClassNotFoundException: databaseat .URLClassLoader$1.run(URLClassLoader.java:200)at java.security.AccessController.doPrivileged(Native Method)at .URLClassLoader.findClass(URLClassLoader.java:188)at ng.ClassLoader.loadClass(ClassLoader.java:307)at uncher$AppClassLoader.loadClass(Launcher.java:301)at ng.ClassLoader.loadClass(ClassLoader.java:252)at ng.ClassLoader.loadClassInternal(ClassLoader.java:320)Could not find the main class: database. Program will exit.D:\Java>当配置正确后就可以查询数据库的内容了如下所示。
Java中使用MyBatis Plus连接和操作MySQL数据库
Java中使用MyBatis Plus连接和操作MySQL数据库1. 简介近年来,Java语言以其跨平台特性和广泛的应用领域成为了全球最受欢迎的编程语言之一。
而MySQL作为一种强大的开源关系型数据库,也是Java开发者首选的数据库之一。
在Java中,我们可以使用MyBatis Plus来连接和操作MySQL数据库,提升开发效率和简化数据库操作。
2. MyBatis Plus简介MyBatis Plus是基于MyBatis的一款增强工具,旨在简化和提升MyBatis的使用体验。
它提供了一系列强大的功能,如代码生成器、分页插件、性能分析插件等,使得开发者能够更加便捷地开发和维护数据库相关的应用程序。
3. 连接MySQL数据库在使用MyBatis Plus连接MySQL数据库之前,我们需要先在项目中引入相关的依赖。
可以通过Maven或Gradle等构建工具来管理项目的依赖。
在pom.xml或build.gradle文件中添加相应的依赖项,然后进行构建操作。
在Java代码中,我们需要创建一个数据源并配置相关的数据库连接信息。
可以使用MySQL提供的JDBC驱动程序来管理数据库连接。
在MyBatis Plus中,我们可以使用com.mysql.cj.jdbc.Driver作为驱动类,指定数据库的URL、用户名和密码来建立连接。
4. 创建实体类在进行数据库操作之前,我们需要定义与数据库表对应的实体类。
在Java中,我们可以使用POJO(Plain Old Java Object)来表示实体类。
POJO是一种普通的Java对象,不继承任何特定的父类或实现任何特定的接口。
在MyBatis Plus中,实体类需要使用@Table注解来指定对应的数据库表名,使用@Column注解来指定字段名,以及指定主键等属性。
通过在实体类中定义与表对应的字段和属性,我们可以通过MyBatis Plus来进行数据库的增删改查操作。
数据库连接三种方法
JAVA与数据库连接方法(一)用JAVA连接数据库主要有两种方式,一是用JDBC-ODBC桥来连接,二是用相关厂商提供的相应驱动程序来连接,首先谈谈第一种连接。
JDBC-ODBC桥接器是用JdbcOdbc.Class和一个用于访问ODBC驱动程序的本地库实现的。
对于WINDOWS平台,该本地库是一个动态连接库DLL(JDBCODBC.DLL)。
由于JDBC在设计上与ODBC很接近。
在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了。
这种桥接器的优点是,它使JDBC目前有能力访问几乎所有的数据库。
通行方式如图所示:应用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC层---数据源具体操作方法为:首先打开控制面板的管理工具,打开数据源(ODBC),在用户DSN里面添加数据源(即你要连接的数据库的名字),在这里假定连接SQL SERVER2000的GoodsSupply数据库。
名称填写你要连接的数据库的名称(GoodsSupply),然后逐步设置,如果选用了使用SQL-SERVER密码认证的话,就要输入相应的用户名及密码连接到数据库。
一路下一步设置完成。
在JAVA里面编写程序进行测试,在这里我的程序是让用户输入任意的表名与与列名,把该列的所有数据输出。
源代码如下:import java.io.BufferedReader;import java.io.InputStreamReader;import java.sql.*;public class ODBCBridge {public static void main(String[] args) {String url="jdbc:odbc:GoodsSupply";Statement sm=null;String command=null;ResultSet rs=null;String tableName=null;String cName=null;String result=null;BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); try {try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动}catch(ClassNotFoundException e){System.out.println("Can not load Jdbc-Odbc Bridge Driver");System.err.print("ClassNotFoundException:");System.err.println(e.getMessage());}Connection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000认证DatabaseMetaData dmd=con.getMetaData(); //DMD为连接的相应情况System.out.println("连接的数据库:"+dmd.getURL());System.out.println("驱动程序:"+dmd.getDriverName());sm=con.createStatement();System.out.println("输入表名");tableName=input.readLine();while(true) {System.out.println("输入列名(为空时程序结束):");cName=input.readLine();if(cName.equalsIgnoreCase(""))break;command="select "+cName+" from "+tableName;rs=sm.executeQuery(command); //执行查询if(!rs.next())System.out.println("表名或列名输入有误");else {System.out.println("查询结果为:");do{result=rs.getString(cName);//数据库语言设置为中文,不用转换编码//result=new String(result.getBytes("ISO-8859-1"),"GB2312"); System.out.println(result);}while(rs.next());}}}catch(SQLException ex) {System.out.println("SQLException:");while(ex!=null) {System.out.println("Message:"+ex.getMessage());ex=ex.getNextException();}}catch(Exception e) {System.out.println("IOException");}}}JAVA与数据库连接方法(二)现在介绍第二种方法,用关厂商提供的相应驱动程序来连接。
java连接Mysql方法和示例
非本人资料,资料来自:/cxwen78/article/details/6863696这网址很多好的资料。
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术。
一、JDBC基础知识JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。
1、跨平台运行:这是继承了Java语言的“一次编译,到处运行”的特点;2、不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,JDBC驱动程序可以利用JDBC API创建Java程序和数据源之间的桥梁。
应用程序只需要编写一次,便可以移到各种驱动程序上运行。
Sun提供了一个驱动管理器,数据库供应商——如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。
所以JDBC不受数据库供应商的限制。
JDBC API可以作为连接Java应用程序与各种关系数据库的纽带,在带来方便的同时也有负面影响,以下是JDBC的优、缺点。
优点如下:∙操作便捷:JDBC使得开发人员不需要再使用复杂的驱动器调用命令和函数;∙可移植性强:JDBC支持不同的关系数据库,所以可以使同一个应用程序支持多个数据库的访问,只要加载相应的驱动程序即可;∙通用性好:JDBC-ODBC桥接驱动器将JDBC函数换成ODBC;∙面向对象:可以将常用的JDBC数据库连接封装成一个类,在使用的时候直接调用即可。
Java使用JDBC连接MySQL数据库
Java使⽤JDBC连接MySQL数据库1、引⽤(Java Data Base Connectivity,java数据库连接)是⼀种⽤于执⾏SQL语句的Java API,可以为多种关系数据库提供统⼀访问,它由⼀组⽤Java语⾔编写的类和接⼝组成。
JDBC提供了⼀种基准,据此可以构建更⾼级的⼯具和接⼝,使数据库开发⼈员能够编写数据库应⽤程序,同时,JDBC也是个商标名。
2、下载连接MySQL数据库要先下载Connector/J的库⽂件,下载Connector/J的官⽹地址:,下载后是个压缩⽂件,我们只需解压出⾥⾯的jar库⽂件,然后导⼊到项⽬⼯程中。
这是我⽤的Connector/J 版本:MySQL数据库连接的⽤户名是root,密码是123456,端⼝是3306,⾥⾯有⼀个⾃⼰新建的数据库名为student,student⾥⾯有⼀个新建的表为stuinfo,MySQL数据库安装包下载:MySQL的相关语句:/* 以下仅是⼀些基本的SQL语句 */create database student; /* 创建⼀个数据库,数据库名为student */show databases; /* 查看数据库 */use student; /* 使⽤名为student的数据库 */create table stuinfo(id char(12),name char(20),age int); /* 创建⼀个表,表名为stuinfo */show tables; /* 查看表 */insert into stuinfo values('201307020010','zhangsan',21); /* 插⼊⼀条记录到stuinfo表中 */select*from stuinfo; /* 查询表中所有的记录 */select id,name from stuinfo; /* 查询表中的指定字段 */select*from stuinfo where age=21; /* 带条件查询 */delete from stuinfo where id='201307020010'; /* 带条件删除表中指定记录 */drop table stuinfo; /* 删除⼀个表 */更多MySQL语句可查看:3、在Eclipse中导⼊Connector/J库⽂件的步骤:项⽬⼯程:新建⼀个Java项⽬,添加⼀个TestDB类,将下⾯第4步的拷贝进去即可。
MySQL与Java的连接与操作
MySQL与Java的连接与操作一、引言在当今信息化的时代,数据库是各种应用程序的重要组成部分之一,而MySQL作为一种功能强大、性能稳定的关系型数据库管理系统,被广泛应用于各种企业和个人项目中。
而Java作为一种广泛应用于各种平台的高级编程语言,与MySQL的连接与操作也成为了开发者们关注的焦点。
本文将从MySQL的连接和操作两个方面来探讨MySQL与Java的结合。
二、MySQL与Java的连接1. JDBC驱动的选择JDBC(Java Database Connectivity)是连接Java程序与数据库的一种标准接口,通过JDBC,我们可以实现Java与各种关系型数据库的交互。
在与MySQL的连接中,我们需要选择适合的JDBC驱动,目前广泛使用的有两种:MySQL Connector/J和MariaDB Connector/J。
根据实际需求选择合适的驱动版本,确保版本的兼容性和稳定性。
2. 连接MySQL数据库在Java中连接MySQL数据库的第一步是加载JDBC驱动,可以使用Class.forName()方法加载MySQL驱动类。
接着使用DriverManager.getConnection()方法建立与MySQL数据库的连接,需要传入数据库的URL、用户名和密码等信息作为参数。
连接成功后,就可以进行数据库的相关操作了。
3. 基本连接示例以下是一个简单的Java代码示例,演示了如何连接到MySQL数据库:```javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class MySQLConnectionExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "123456";Connection connection = null;try {// 加载MySQL驱动Class.forName("com.mysql.jdbc.Driver");// 建立数据库连接connection = DriverManager.getConnection(url, username, password); // 连接成功后的操作...// 省略数据操作的代码} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {// 关闭数据库连接if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}}}```以上代码示例中,使用的是MySQL Connector/J驱动,并建立到名为mydatabase的数据库的连接,用户名和密码分别为root和123456。
java连接mysql数据库实现单条插入和批量插入
java连接mysql数据库实现单条插⼊和批量插⼊本⽂实例为⼤家分享了java连接mysql数据库实现单条和批量插⼊的具体代码,供⼤家参考,具体内容如下本⽂插⼊数据库的数据来源:1、连接数据库package com.njupt.ymh;import java.sql.DriverManager;import java.sql.SQLException;import com.mysql.jdbc.Connection;public class Connect_MySQL {private static final String URL="jdbc:mysql://127.0.0.1:3306/news"; // ⼀般默认3306,这⾥设置成6666 (33060) MYSQL8 WMPNetworkSvc private static final String USER="root";private static final String PASSWORD="12345";private static Connection connection=null;static{//1、加载驱动程序(反射的⽅法)try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}//2、连接数据库try {connection=(Connection) DriverManager.getConnection(URL, USER,PASSWORD);//地址,⽤户名,密码} catch (SQLException e) {e.printStackTrace();}}public static Connection getConnection(){return connection;}}2、单条插⼊package com.njupt.ymh;/*** 单条插⼊数据*/import java.sql.SQLException;import java.util.List;import com.mysql.jdbc.Connection;public class OperationPaper {private static Connection connection=Connect_MySQL.getConnection();public void addNewsPaper(NewsPaper newsPaper){//增// connection = Connect_MySQL.getConnection();String sql="insert into papertest (id, date, title, lead_pargraph, full_text) values(?, ?, ?, ?, ?)";java.sql.PreparedStatement ptmt = null;try {ptmt = connection.prepareStatement(sql);} catch (SQLException e1) {e1.printStackTrace();}try {ptmt.setLong(1, newsPaper.getID());ptmt.setString(2, newsPaper.getDate());ptmt.setString(3, newsPaper.getTitle());ptmt.setString(4, newsPaper.getLead());ptmt.setString(5, newsPaper.getfull());ptmt.execute();//执⾏给定的SQL语句,该语句可能返回多个结果} catch (SQLException e) {e.printStackTrace();}}public static void main(String[] args) {OperationPaper operationPaper = new OperationPaper();List<String> listFile = SearchFile.getAllFile("E:\\huadai\\1996\\07\\21", false); // ⽂件列表for (String string : listFile) {NewsPaper newsPaper = new NewsPaper(string);if (newsPaper.isUseful())operationPaper.addNewsPaper(newsPaper); // 插⼊数据库}}}3、批量插⼊package com.njupt.ymh;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.mysql.jdbc.Connection;public class OperaOnNewsPaper implements Cloneable{private static Connection connection=Connect_MySQL.getConnection();/*** ⽀持批量插⼊数据* @param newsPaper*/public void addNewsPaper(ArrayList<NewsPaper> listNewsPaper){//增String sql="insert into papertest (id, date, title, lead_pargraph, full_text) values(?, ?, ?, ?, ?)"; java.sql.PreparedStatement ptmt = null;try {connection.setAutoCommit(false);// 关闭事务ptmt = connection.prepareStatement(sql);} catch (SQLException e2) {e2.printStackTrace();}for (NewsPaper paperaper : listNewsPaper) {try {ptmt.setLong(1, paperaper.getID());ptmt.setString(2, paperaper.getDate());ptmt.setString(3, paperaper.getTitle());ptmt.setString(4, paperaper.getLead());ptmt.setString(5, paperaper.getfull());ptmt.addBatch();}catch (SQLException e) {e.printStackTrace();}}try {ptmt.executeBatch();//执⾏给定的SQL语句,该语句可能返回多个结果mit();} catch (SQLException e) {e.printStackTrace();}}public static void main(String[] args) {OperaOnNewsPaper operation = new OperaOnNewsPaper();List<String> listFile = SearchFile.getAllFile("E:\\huadai\\2007", false); // ⽂件列表ArrayList<NewsPaper> listPaper = new ArrayList<>();int count = 0;int sizenum = 1000;for (String string : listFile) {NewsPaper newsPaper = new NewsPaper(string);if (newsPaper.isUseful()) {count++;listPaper.add(newsPaper); // 新闻列表if (count % sizenum == 0) {//System.out.println("ok");System.out.println(" " + count);operation.addNewsPaper(listPaper); //插⼊数据库System.out.println(count);listPaper.clear();}}}if (count %sizenum != 0) {operation.addNewsPaper(listPaper);System.out.println("zui hou ");}}}通过实际测试,⼤概⼗万级数据批量插⼊要不单条插⼊节省10分钟左右时间。
Java连接MySQL数据库三种方法
Java连接MySQL数据库三种⽅法好久没有更新博客了!今天利⽤周⽬时学习了⼀下数据库mysql。
介绍⼀下数据库的三种连接⽅式!开发⼯具:Myeclipse MySQL5.6 MySQL连接驱动:mysql-connector-java-5.1.27.jar加载驱动: 1. 在⼯程⽬录中创建lib⽂件夹,将下载好的JDBC放到该⽂件夹下,如下图所⽰:2. 右键⼯程名,在java build path中的Libraries分页中选择Add JARs...,选择刚才添加的JDBC,如下图:也可以在项⽬“右击”,选择“Build Path”。
数据包准备: 在数据库day17创建如下数据表emp:CREATE TABLE emp(empno INT(4) PRIMARY KEY,ename VARCHAR(10),job VARCHAR(9),hiredate DATE,sal FLOAT(7,2)) ;添加数据:连接数据库并读取数据: 数据库名称:day17 数据包名称:emp 端⼝号:3306 ⽤户名:root 密码:root1package gz.itcast.a_jdbc;23import java.sql.Connection;4import java.sql.Driver;5import java.sql.DriverManager;6import java.util.Properties;78import org.junit.Test;9/**10 * jdbc连接数据库11 * @author APPle12 *13*/14public class Demo1 {15//连接数据库的URL16private String url = "jdbc:mysql://localhost:3306/day17";17// jdbc协议:数据库⼦协议:主机:端⼝/连接的数据库 // 1819private String user = "root";//⽤户名20private String password = "root";//密码2122/**23 * 第⼀种⽅法24 * @throws Exception25*/26 @Test27public void test1() throws Exception{28//1.创建驱动程序类对象29 Driver driver = new com.mysql.jdbc.Driver(); //新版本30//Driver driver = new org.gjt.mm.mysql.Driver(); //旧版本3132//设置⽤户名和密码33 Properties props = new Properties();34 props.setProperty("user", user);35 props.setProperty("password", password);3637//2.连接数据库,返回连接对象38 Connection conn = driver.connect(url, props);3940 System.out.println(conn);41 }4243/**44 * 使⽤驱动管理器类连接数据库(注册了两次,没必要)45 * @throws Exception46*/47 @Test48public void test2() throws Exception{49 Driver driver = new com.mysql.jdbc.Driver();50//Driver driver2 = new com.oracle.jdbc.Driver();51//1.注册驱动程序(可以注册多个驱动程序)52 DriverManager.registerDriver(driver);53//DriverManager.registerDriver(driver2);5455//2.连接到具体的数据库56 Connection conn = DriverManager.getConnection(url, user, password);57 System.out.println(conn);5859 }6061/**62 * (推荐使⽤这种⽅式连接数据库)63 * 推荐使⽤加载驱动程序类来注册驱动程序64 * @throws Exception65*/66 @Test67public void test3() throws Exception{68//Driver driver = new com.mysql.jdbc.Driver();6970//通过得到字节码对象的⽅式加载静态代码块,从⽽注册驱动程序71 Class.forName("com.mysql.jdbc.Driver");7273//Driver driver2 = new com.oracle.jdbc.Driver();74//1.注册驱动程序(可以注册多个驱动程序)75//DriverManager.registerDriver(driver);76//DriverManager.registerDriver(driver2);7778//2.连接到具体的数据库79 Connection conn = DriverManager.getConnection(url, user, password);80 System.out.println(conn);8182 }8384 }运⾏结果为:。
Java连接到MySQL数据库的代码及相关操作
Java连接到MySQL数据库的代码及相关操作在将Java程序连接到MySQL的过程中,应先将程序驱动包导入“External Libraries”,其步骤是:Project Structure(Ctrl+Alt+Shift+S)→Modules →Dependencies →Add 驱动包。
JDBC代码模板:Class.forName(JDBC驱动类);Connection con = DriverManager.get(Connection(JDBC URL, 数据库用户名, 密码)); Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(“SELECT a,b FROM Table”);Whlie(rs.next()){Int x = rs.getInt(“a”);String s = rs.getString(“b”);}rs.close();stmt.close();con.close();其中,a、b的数据类型分别为整形和字符串型;实际应用中,随着a、b的数据类型的不同,while语句中的语句类型也随之改变。
import java.sql.*;public class LinkedMysql {public static void main(String[] args) {//声明Connection对象Connection con;//驱动程序名String driver = "com.mysql.jdbc.Driver";//URL指向要访问的数据库名testString url = "jdbc:mysql://192.168.0.91:3306/test";//MySQL配置时的用户名String user = "test";//MySQL配置时的密码String password = "test";//遍历查询结果集try {//加载驱动程序Class.forName(driver);//1.getConnection()方法,连接MySQL数据库!!con = DriverManager.getConnection(url, user, password);if (!con.isClosed())System.out.println("Succeeded connecting to the Database!");//2.创建statement类对象,用来执行SQL语句!!Statement statement = con.createStatement();//要执行的SQL语句String sql = "select * from student_info";//3.ResultSet类,用来存放获取的结果集!!ResultSet rs = statement.executeQuery(sql);System.out.println("-----------------");System.out.println("执行结果如下所示:");System.out.println("-----------------");System.out.println(" 学号" + "\t" + " 姓名");System.out.println("-----------------");String name = null;String id = null;while (rs.next()) {//获取stuname这列数据name = rs.getString("student_name");//获取stuid这列数据id = rs.getString("student_id");//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
详解java连接mysql数据库的五种方式
详解java连接mysql数据库的五种⽅式第⼀种⽅式:将⽤户名和密码封装在Properties类中⾸先,导⼊数据库连接包这个是⽏庸置疑的。
创建⼀个jdbc驱动dirver。
将数据库(以MySQL为例)的url保存在所创建的字符串url中。
如果mysql版本低于8.0,则url保存形式应该为:String url = "jdbc:mysql://localhost:3306/test"如果mysql版本为8.0版本或以上,url保存形式为:String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";我使⽤的mysql版本是8.0,所以在后⾯加上了时区,否则默认是UTC时区,⽐北京时间晚8⼩时。
然后将mysql数据库对应的user和password封装在Properties类中,最后通过Connection类来创建数据库连接,源代码如下:Driver driver = new com.mysql.jdbc.Driver();String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";/*将⽤户名和密码封装在Properties中*/Properties info = new Properties();info.setProperty("user","root");info.setProperty("password","ab20010322");Connection conn = driver.connect(url,info);System.out.println(conn);第⼆种⽅式:在⽅式⼀的基础上,利⽤反射实现驱动将第⼀种⽅式中:Driver driver = new com.mysql.jdbc.Driver();更改为:Class clazz = Class.forName("com.mysql.jdbc.Driver");Driver driver = (Driver) clazz.newInstance();相对于第⼀种⽅式,两种实现的功能相同,但是第⼆种⽅式利⽤反射来实现驱动,这样可以避免使⽤第三⽅接⼝,使得代码有更好的可移植性。
Domino中Java代理连接mysql数据库
Domino访问Mysql数据库JAVA代理访问使用Java代理库接Mysql,其与Java访问Mysql数据库大体上类似,使用JDBC进行数据库连接,但有一点区别,就是Java代理有安全性等级的设置。
所以,使用JA V A代理访问Mysql时有以下几点需要注意:1、需要将与Mysql对应的连接驱动拷贝至domino服务器程序目录下的jvm/lib/ext下(也可以将其拷贝至服务器的其它目录,并在notes.ini里做对应的配置),并重启domino服务器。
2、需要修改该domino代理的安全性等级为2级或3级,如下图:3、如果该代理需要在Notes客户端上运行,需要将Mysql对应的驱动拷贝至Notes目录下的jvm/lib/ext下。
数据库添加代码:import lotus.domino.*;import java.sql.*;import java.util.ArrayList;import java.io.PrintWriter;public class JavaAgent extends AgentBase {String url = "jdbc:mysql://localhost:3306/mytask";Connection conn=null;Statement statement=null;ResultSet rs=null;//数据库连接public boolean CONN(){try{Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(url, "root", "mysql");statement = conn.createStatement();return true;}catch(Exception e){return false;}}//查询public ResultSet Select(String sql){if(this.CONN()){try{rs = statement.executeQuery(sql);}catch(Exception e){}return rs;}else return null;}//执行Sql语句public boolean ExcuteSql(String sql){boolean x=false;if(this.CONN()){try{statement.executeUpdate(sql);x=true;}catch(Exception e){e.printStackTrace();} }return x;}//数据库事务public boolean ExcuteTrans(ArrayList al) { boolean x=false;if(this.CONN()) {try{conn.setAutoCommit(false);for(int i=0;i<al.size();i++) {String y = al.get(i).toString();statement.execute(y);}mit();conn.setAutoCommit(true);x=true;}catch(Exception e){try {conn.rollback();conn.setAutoCommit(true);}catch(Exception ex){}}}return x;}public void NotesMain() {try {Session s = getSession();AgentContext ag = s.getAgentContext();Database db = ag.getCurrentDatabase();//Document doc = db.createDocument();//doc.appendItemValue("Form", "showData");Document doc = ag.getDocumentContext();String sql;sql = "insert into tasks(deptname,proname,taskname,excctype) values ('"+doc.getItemValueString("DeptName")+"','"+doc.getItemValueString("ProName")+"','"+doc.get ItemValueString("TaskName")+"','"+doc.getItemValueString("ExccType")+"')";PrintWriter pw = getAgentOutput();boolean result = this.ExcuteSql(sql);if (result){pw.println("<Script>alert('增加成功');</Script>");}else pw.println("<Script>alert('增加失败');</Script>");} catch(Exception e) {e.printStackTrace();}}}数据库查询代码:import lotus.domino.*;import java.sql.*;import java.util.ArrayList;public class JavaAgent extends AgentBase {String url = "jdbc:mysql://localhost:3306/anatast";Connection conn=null;Statement statement=null;ResultSet rs=null;//数据库连接public boolean CONN(){try{Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(url, "root", "mysql"); statement = conn.createStatement();return true;}catch(Exception e){return false;}}//查询public ResultSet Select(String sql){if(this.CONN()){try{rs = statement.executeQuery(sql);}catch(Exception e){}return rs;}else return null;}//执行Sql语句public boolean ExcuteSql(String sql){boolean x=false;if(this.CONN()){try{statement.executeUpdate(sql);x=true;}catch(Exception e){e.printStackTrace();} }return x;}//数据库事务public boolean ExcuteTrans(ArrayList al) {boolean x=false;if(this.CONN()) {try{conn.setAutoCommit(false);for(int i=0;i<al.size();i++) {String y = al.get(i).toString();statement.execute(y);}mit();conn.setAutoCommit(true);x=true;}catch(Exception e){try {conn.rollback();conn.setAutoCommit(true);}catch(Exception ex){}}}return x;}public void NotesMain() {try {Session s = getSession();AgentContext ag = s.getAgentContext();Database db = ag.getCurrentDatabase();//Document doc = db.createDocument();//doc.appendItemValue("Form", "showData");Document doc = ag.getDocumentContext();ResultSet rs = this.Select("select taskname,deptname,count(*) as num1 from tasks group by taskname,deptname");String result = "<table border='1'>";result = result + "<th>流程环节</th><th>部门</th><th>3个月</th>";while(rs.next()){result = result + "<tr>";result = result +"<td>"+rs.getString("taskname")+"</td><td>"+rs.getString("deptname")+"</td><td>"+rs.getStri ng("num1")+"</td>";result = result + "</tr>";}result = result + "</table>";doc.replaceItemValue("tData",result);} catch(Exception e) {e.printStackTrace();}}}。
Java中连接MySql数据库的几种方法
JDBCJava中JDBC定义了java与各种sql数据库之间的编程接口,JDBC API是一个统一的标准应用程序编程接口,这样可以屏蔽异种数据库之间的差异。
JDBC的工作原理JDBC与ODBC(OpenData Base Connectivity,开放式数据库连接)的作用非常类似,它在应用程序和数据库之间起到了桥梁的作用。
ODBC使用的特别广泛,在java中还提供了JDBC-ODBC桥,能够在JDBC与ODBC之间进行转换,这样可以通过ODBC屏蔽不同种数据库之间的差异。
在JDK的包java.sql.*中定义了一系列的类、接口、异常以及这些类和接口中定义的属性和方法,java的开发人员通过一定的规则调用java.sql.*中的API就可以实现对数据库管理系统的访问。
JDBC的四种驱动1.JDBC-ODBC BridgeJDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并作出配置,它的调用方式如下图:因为中间有个JDBC-ODBC,所以影响了执行效率。
配置ODBC数据源的方法如下(以Mysql为例):第一步,打开控制面板—>管理工具--->数据源(ODBC)选择系统DSN,这一项默认应该是空的,我这里是已经配置好了一个数据源。
第二步,点击添加第三步,选择Mysql的ODBC驱动,点击完成。
注:MySQL的ODBC驱动在系统中一般是找不到的,因为它不是系统默认自带的驱动,所以,我们要自己安装我们所需要的MySQL的ODBC驱动。
安装步骤如下:①.下载安装包,/downloads/connector/odbc/②.我们下载与自己系统相应的ODBC驱动这里我们选择③.我们下载,完成后会得到④.点击安装,安装完成后,就可以找到我们需要的驱动了。
第四步,配置我们的数据源信息。
第五步,点击Test测试成功,点击ok。
测试失败,请检查配置问题。
MySQL与Java的数据库连接方法
MySQL与Java的数据库连接方法概述:MySQL是一种开源的关系型数据库管理系统,Java是一种高级编程语言。
在开发和维护Java应用程序时,与MySQL数据库的连接是非常常见和重要的操作。
本文将介绍MySQL与Java的数据库连接方法,包括使用JDBC、使用连接池、使用框架等。
1. 使用JDBC连接MySQL数据库JDBC(Java Database Connectivity)是Java中用于与数据库进行交互的API,通过JDBC可以实现与各种数据库的连接和操作。
连接MySQL数据库的步骤如下:(1)加载数据库驱动程序:在使用JDBC连接MySQL之前,需要先加载MySQL的驱动程序,使用`Class.forName("com.mysql.jdbc.Driver")`来加载MySQL的驱动类。
(2)建立数据库连接:使用`DriverManager.getConnection(url, username, password)`来建立数据库连接,其中url是数据库的URL地址,username是用户名,password是密码。
(3)执行数据库操作:建立好数据库连接之后,就可以通过Connection对象执行各种数据库操作,例如执行SQL语句、插入数据、更新数据等。
(4)关闭数据库连接:在完成所有数据库操作后,需要使用`Connection.close()`方法关闭数据库连接,释放资源。
使用JDBC连接MySQL的示例代码如下:```javaimport java.sql.*;public class MySQLJDBCExample {public static void main(String[] args) {try {// 加载数据库驱动程序Class.forName("com.mysql.jdbc.Driver");// 建立数据库连接Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");// 执行数据库操作// ...// 关闭数据库连接conn.close();} catch (Exception e) {e.printStackTrace();}}}```2. 使用连接池连接MySQL数据库连接池是一种数据库连接的管理技术,它可以在应用程序启动时创建一定数量的数据库连接,并在需要时将连接分配给应用程序使用,使用完之后再归还到连接池中,以便其他应用程序复用。
表述java连接mysql的步骤
表述java连接mysql的步骤Java 连接 MySQL 数据库的步骤主要包括以下几个方面:设置 JDBC 驱动程序、建立数据库连接、执行 SQL 语句、处理查询结果、关闭数据库连接。
本文将详细介绍每个步骤。
1.设置JDBC驱动程序```java```2.建立数据库连接在加载驱动程序后,我们可以通过 DriverManager 的getConnection( 方法建立与 MySQL 数据库的连接。
连接需要提供数据库的 URL、用户名和密码。
URL 的格式通常如下所示:```jdbc:mysql://host:port/database```其中,host 是 MySQL 数据库服务器的主机名,port 是端口号(默认为 3306),database 是要连接的具体数据库的名称。
例如:```javaString url = "jdbc:mysql://localhost:3306/mydb";String username = "root";String password = "password";Connection conn = DriverManager.getConnection(url, username, password);```3.执行SQL语句在建立数据库连接后,我们可以通过 Connection 对象创建Statement 或 PrepareStatement 对象,用于执行 SQL 语句。
Statement 对象适用于静态的 SQL 语句,而 PrepareStatement 对象适用于动态的SQL 语句。
下面是一个使用 Statement 对象执行 SQL 查询的示例:```javaStatement stmt = conn.createStatement(;String sql = "SELECT * FROM users";ResultSet rs = stmt.executeQuery(sql);```4.处理查询结果当执行 SQL 查询语句后,可以通过 ResultSet 对象来处理查询结果。
Java中如何获取mysql连接的3种方法总结
Java中如何获取mysql连接的3种⽅法总结前⾔本⽂主要来说说三种 Java 中获取 mysql 连接的⽅式,分享出来供⼤家参考学习,下⾯话不多说了,来⼀起看看详细的介绍:第⼀种:传统的连接⽅式;第⼆种:读取配置⽂件⽅式;第三种:数据库连接池。
⼀、传统的连接⽅式:⾸先在 src ⽬录下创建名为 lib 的⽂件夹,导⼊数据库驱动的 jar 包,随后 "add to build path"。
1.注册驱动Class.forName("com.mysql.jdbc.Driver");2.获取连接String url = "jdbc:mysql://localhost:3306/shun";String user = "root";String password = "";Connection conn = DriverManager.getConnection(url, user, password);Finish.Codes:⼆、读取配置⽂件⽅式⾸先我们在 src ⽬录下创建⼀个 .properties 的配置⽂件,内容如下:1.读取配置⽂件InputStream is = Demo02.class.getClassLoader().getResourceAsStream("db.properties");2.创建Properties对象Properties pro = new Properties();3.装载pro.load(is);4.解析String driver = pro.getProperty("driver");String url = pro.getProperty("url");String user = pro.getProperty("user");String password = pro.getProperty("password");5.注册驱动获取连接Class.forName(driver);Connection conn = DriverManager.getConnection(url, user, password);Finish.Codes:三、数据库连接池同样,我们先在 src ⽬录下创建名为 lib 的⽂件夹,导⼊ DBUtils 和数据库连接池的 jar 包,随后 "add to build path"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JDBC
Java中JDBC定义了java与各种sql数据库之间的编程接口,JDBC API是一个统一的标准应用程序编程接口,这样可以屏蔽异种数据库之间的差异。
JDBC的工作原理
JDBC与ODBC(OpenData Base Connectivity,开放式数据库连接)的作用非常类似,它在应用程序和数据库之间起到了桥梁的作用。
ODBC使用的特别广泛,在java中还提供了JDBC-ODBC桥,能够在JDBC与ODBC之间进行转换,这样可以通过ODBC屏蔽不同种数据库之间的差异。
在JDK的包java.sql.*中定义了一系列的类、接口、异常以及这些类和接口中定义的属性和方法,java的开发人员通过一定的规则调用java.sql.*中的API就可以实现对数据库管理系统的访问。
JDBC的四种驱动
1.JDBC-ODBC Bridge
JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并作出配置,它的调用方式如下图:
因为中间有个JDBC-ODBC,所以影响了执行效率。
配置ODBC数据源的方法如下(以Mysql为例):
第一步,打开控制面板—>管理工具--->数据源(ODBC)
选择系统DSN,这一项默认应该是空的,我这里是已经配置好了一个数据源。
第二步,点击添加
第三步,选择Mysql的ODBC驱动,点击完成。
注:MySQL的ODBC驱动在系统中一般是找不到的,因为它不是系统默认自带的驱动,所以,我们要自己安装我们所需要的MySQL的ODBC驱动。
安装步骤如下:
①.下载安装包,/downloads/connector/odbc/
②.我们下载与自己系统相应的ODBC驱动
这里我们选择
③.我们下载,完成后会得到
④.点击安装,安装完成后,就可以找到我们需要的驱动了。
第四步,配置我们的数据源信息。
第五步,点击Test
测试成功,点击ok。
测试失败,请检查配置问题。
第六步,点击应用确定,这样我们的ODBC数据源就配置好了。
下面,我们写一段代码来测试下JDBC-ODBC连接
①.我们在已有的project中先新建一个package,名为jdbc,如下图:
②.在保重新建我们的测试类,名为JdbcConnector.java
③.在JdbcConnector.java中写如下代码:
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcConnector {
private static Connection connection;
public static Connection getConnector() throws Exception{
//Class.forName("org.git.mm.mysql.Driver");
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection=DriverManager.getConnection("jdbc:odbc:DataSource","ro ot","root");
return connection;
}
public static void main(String[] args) throws SQLException, Exception {
Statement statement=getConnector().createStatement();
ResultSet rSet=statement.executeQuery("select * from usertable");
while (rSet.next() ){
System.out.println(rSet.getInt(1)+" "+rSet.getString(2));
}
}
}
这其中的代码,
获取Connection连接的代码是:
connection=DriverManager.getConnection("jdbc:odbc:DataSource","ro ot","root");
这句代码是调用DriverManager的静态方法getConnection()来构造我们的JDBC-ODBC连接。
④.我们运行代码看下结果
获取结果值与数据库中的完全一致,测试成功。
2.JDBC Native Bridge
这种方式需要在程序执行的机器上安装本地的且针对特定数据库的驱动程序,通过这个程序把对数据库的JDBC调用转换为数据库的API调用。
因此其性能比JDBC-ODBC的方式要更好一点,缺点就是需要安装驱动程序。
它的调用方式如下:
3.JDBC-NetWork Bridge
这种方式不需要安装驱动程序,直接用JDBC通过网络连接数据库,因此与平台无关,
效率较高,所以在internet的web开发中大量应用。
它的调用方式如下:
4.Pure Java JDBC Drive
Java驱动程序运行在客户端上,因此客户端可以直接访问数据库,其体系结构特别简单,但相应的安全性及程序的逻辑性不好,其调用方式如下:
下面是百度知道里面的一个回答,我引用过来:
1. JDBC-ODBC bridge (Open Database Connectivity,ODBC) 桥驱动程序由Sun 与Merant公司联合开发, 主要功能是把JDBC API调用转换成ODBC API 调用, 然后ODBC API调用针对供应商的ODBC 驱动程序来访问数据库, 即利用JDBC- ODBC 桥通过ODBC来存储数据源
Application <--> JDBC-ODBC Bridge <--> ODBC Driver <--> Database
2. Native-API Bridge
驱动程序上层包装Java程序以与Java应用程序作沟通,将JDBC呼叫转为原生程序代码的呼叫,下层为原生语言(像是C、C++)来与数据库作沟通,下层的函式库是针对特定数据库设计的,不若Type 1可以对ODBC架构的数据库作存取:
Application <--> Native-API Bridge <--> Native Driver <--> Database
3:JDBC-middleware
透过中间件来存取数据库,使用者不必安装特定的驱动程序,而是由驱动程序呼叫中间件,由中间件来完成所有的数据库存取动作,然后将结果传回给驱动程序:
Application <--> JDBC-middleware <--> middleware <--> Database
4:Pure Java Driver
使用纯Java撰写驱动程序与数据库作沟通,而不透过桥接或中间件来存取数据库:Application <--> Pure Java Driver <--> Database。