java连接数据库(参考别人和结合自己的笔记)
2017-02-15 14:17
405 查看
这里用的数据库是mysql 所以用到的java代码 jdbc
1. 开始需要加载数据库的驱动 Class.forName("com.mysql.jdbc.Driver");
Class.forName(“”);的作用是要求JVM查找并加载指定的类,首先要明白,java里面任何class都要装载在虚拟机上才能运行,而静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了,而且以后不会再走这段静态代码了。
具体的详见:http://blog.csdn.net/kaiwii/article/details/7405761
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
这里还需要导入jar包 右击你的项目 Bulid Path-> Add External.. 然后选中你的mysql-connerctor-java包
2.
创建数据库的连接
public static final String username = "root"; //这是你数据库的账号
public static final String psw = "root";//数据库的密码
我这里随便写了个 自己的密码要记牢
public static final String url = "jdbc:mysql://localhost:3306/db?useCharset=true&&characterEncoding=UTF-8&&useSSL=true";
//提供连接数据库的URL
在jdbc中总是以jdbc开头 jdbc:mysql://localhost:3306/这个应该是ip地址 和端口3306 好像 苹果电脑有些端口是3307
(有错的话希望帮忙改正下)
3306/后面的db 应该是你数据库要存数据地方文件的文件名
?后面 useCharset=true useCharset
一定要为 true。 characterEncoding = UTF-8 也可以为其他 比如gbk 最后的useSSL 也是要加上去的
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
3.创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
4.执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,
如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
5.关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
//以上大部分参考自 http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html
做个笔记想自己多看看 下面有参考代码
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class dbConnecter {
public final static String username= "root";
public final static String psw = "root";
public final static String url = "jdbc:mysql://localhost:3306/db?useCharset=true&&characterEncoding=UTF-8&&useSSL=true";
public final static String driverName="com.mysql.jdbc.Driver";
public Connection conn=null;
public Statement statement = null;
public void getConnection()
{
try {
Class.forName(driverName);//配置数据库驱动
conn = DriverManager.getConnection(url, username, psw);//获取链接
} catch (Exception e) {
e.printStackTrace();
}
}
public ResultSet querySql(String sql)
{
ResultSet rs = null;//声明返回结果
try {
statement = conn.createStatement();//配置事务
rs = statement.executeQuery(sql);//查询返回结果集
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public int executeSql(String sql)
{
int rs = 0;
try {
statement = conn.createStatement();//配置事务
rs = statement.executeUpdate(sql);//返回结果
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public String close()
{
String rs = "";
try {
if(statement!=null)
{
statement.close();
}
if(conn!=null)
{
conn.close();
}
rs = "success";
} catch (Exception e) {
e.printStackTrace();
rs="failure";
}
return rs;
}
}
1. 开始需要加载数据库的驱动 Class.forName("com.mysql.jdbc.Driver");
Class.forName(“”);的作用是要求JVM查找并加载指定的类,首先要明白,java里面任何class都要装载在虚拟机上才能运行,而静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了,而且以后不会再走这段静态代码了。
具体的详见:http://blog.csdn.net/kaiwii/article/details/7405761
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
这里还需要导入jar包 右击你的项目 Bulid Path-> Add External.. 然后选中你的mysql-connerctor-java包
2.
创建数据库的连接
public static final String username = "root"; //这是你数据库的账号
public static final String psw = "root";//数据库的密码
我这里随便写了个 自己的密码要记牢
public static final String url = "jdbc:mysql://localhost:3306/db?useCharset=true&&characterEncoding=UTF-8&&useSSL=true";
//提供连接数据库的URL
在jdbc中总是以jdbc开头 jdbc:mysql://localhost:3306/这个应该是ip地址 和端口3306 好像 苹果电脑有些端口是3307
(有错的话希望帮忙改正下)
3306/后面的db 应该是你数据库要存数据地方文件的文件名
?后面 useCharset=true useCharset
一定要为 true。 characterEncoding = UTF-8 也可以为其他 比如gbk 最后的useSSL 也是要加上去的
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
3.创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
4.执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,
如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
5.关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
//以上大部分参考自 http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html
做个笔记想自己多看看 下面有参考代码
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class dbConnecter {
public final static String username= "root";
public final static String psw = "root";
public final static String url = "jdbc:mysql://localhost:3306/db?useCharset=true&&characterEncoding=UTF-8&&useSSL=true";
public final static String driverName="com.mysql.jdbc.Driver";
public Connection conn=null;
public Statement statement = null;
public void getConnection()
{
try {
Class.forName(driverName);//配置数据库驱动
conn = DriverManager.getConnection(url, username, psw);//获取链接
} catch (Exception e) {
e.printStackTrace();
}
}
public ResultSet querySql(String sql)
{
ResultSet rs = null;//声明返回结果
try {
statement = conn.createStatement();//配置事务
rs = statement.executeQuery(sql);//查询返回结果集
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public int executeSql(String sql)
{
int rs = 0;
try {
statement = conn.createStatement();//配置事务
rs = statement.executeUpdate(sql);//返回结果
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public String close()
{
String rs = "";
try {
if(statement!=null)
{
statement.close();
}
if(conn!=null)
{
conn.close();
}
rs = "success";
} catch (Exception e) {
e.printStackTrace();
rs="failure";
}
return rs;
}
}
package db; import java.sql.ResultSet; public class main { public static void main(String[] args) { dbConnecter con = new dbConnecter(); try { con.getConnection(); ResultSet rs = con.querySql("select * from tb_stu"); while (rs.next()) { System.out.println("stuId为:"+rs.getInt(1)+" stuName为:"+rs.getString(2)+" stuCode为:"+rs.getString(3)); } //查询遍历数据 int rs1 = con.executeSql("insert into tb_stu values(1,'stuName','stuCode')"); System.out.println("新增数据条数为:"+rs1); //插入新数据 int rs2 = con.executeSql("delete from tb_stu where stuId=1"); System.out.println("删除数据条数为:"+rs2); //删除数据 int rs3 = con.executeSql("update tb_stu set stuName='stuNewName' where stuId=1"); System.out.println("修改数据条数为:"+rs3); //新增数据 } catch (Exception e) { e.printStackTrace(); } finally { con.close(); } } }
相关文章推荐
- java中各类数据库连接 笔记
- 【Java笔记】JDBC各数据库连接
- Java_jdbc 基础笔记之一 数据库连接
- Java_jdbc 基础笔记之九 数据库连接 (查询Customer对象的方法)
- Java_jdbc 基础笔记之五 数据库连接 (ResultSet)
- 傻B自己看的java笔记:连接MYSQL
- java 从零开始,学习笔记之基础入门<数据库连接配置>(二十八)
- Java_jdbc 基础笔记之三 数据库连接 (Statement)
- Java_jdbc 基础笔记之二 数据库连接
- Java_jdbc 基础笔记之八 数据库连接(写一个查询Student对象的方法)
- 自己写的数据库连接及操作类——DB.java
- oracle如何用自己的pl/sql developer连接别人的数据库
- JAVA学习笔记(十一)连接数据库
- 学习笔记-Java连接数据库问题
- java学习笔记之jsp连接到数据库的小型留言板项目
- C#读写控制XML文件(主要为自己设置数据库连接文件参考)
- JAVA学习笔记4——JDBC方式连接数据库
- java笔记之连接数据库
- Java_jdbc 基础笔记之六 数据库连接 (PreparedStatement)
- Java_jdbc 基础笔记之四 数据库连接 (通用更新方法)