这里用的数据库是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";
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();
}
}
}