java连接Mysql和java 连接Sqlserver类似.
JDBC连接编程步骤:
1.Load the Driver
1.1 Class.forName()|class.forName().newInstance()|new DriverName()
1.2 实例化时自动向DriverManager注册,不需要显示调用DriverManager.registerDriver方法
2.Connect to the DataBase
2.1 DriverManager.getConnection()
3.Execute the SQL 执行SQL语句
31 Connection.CreateStatement()
3.2 Statement.executeQuery() 执行sql语句,sql语句在excuteQuery(“Select * from TT”)
3.3 Statement.executeUpdate()
4.Retrieve the result data
4.1循环取得结果 while(rs.next()) 进行结果的遍历
5.Show the result data
5.1将数据库中的各种类型转换为Java中的类型(getXXX)方法,getInt(“字段”) getString getDouble
6.Close ——————后打开的先关
6.1 close the resultset./close the statement /close the connection
1.下载Mysql的jdbc驱动,下面是下载地址
MySql jdbc驱动下载地址
解压缩,将mysql-connector-java-5.1.38-bin.jar包手动添加到工程中。
2.使用statement建立连接
Connection是数据库连接的代表对象,要执行sql语句的话,就必须需要java.sql.Statement操作对象,可以使用Connection的createStatement()建立Statement对象:
Statement st=conn.createStatement();
取得Statement对象后,可以使用excuteUpdate()、executeQuery()等方法来执行SQL,excuteUpdate()主要用来执行CREATE 、TABLE 、 INSERT、 DROP TABLE、 ALTER TABLE 等会改变数据库内容的SQL语句.
例如:
首先使用Mysql图形管理界面SQLyog执行如下程序:
CREATE DATABASE test;
USE test;
CREATE TABLE t_message(
id INT AUTO_INCREMENT PRIMARY KEY NOT NULL, //主键自增长
NAME CHAR(20) NOT NULL,
email CHAR(40),
msg TEXT NOT NULL
)CHARSET=UTF8;
建立test数据库,并在该数据库中建立t_message表
如果想在数据库中插入一条数据,在java中可以使用executeUpdate方法:
st.executeUpdate("INSERT INTO t_message VALUES(1,'xiaoming','xiaoming@mail.com','deudejuideu')");
返回int结果,表示数据变动的笔数
如果想查询数据库,可以使用Statement的executeQuery()方法。可以返回java.sql.ResultSet对象,可以使用ResultSet的next()移动至下一笔数据,它会返回true或者false表示是否有下一条数据。接着可以使用getxxx()取得数据,如:getString()、getInt()、getFloat()等方法。
如下:
使用域名查询
ResultSet result=st.executeQuery("SELECT * FROM t_message");
while(result.next()){
int id=result.getInt("id");
String name =result.getString("name");
String email=result.getString("email");
String msg =result.getString("msg");
使用编号查询:
ResultSet result=st.executeQuery("SELECT * FROM t_message");
while(result.next()){
int id=result.getInt("1");
String name =result.getString("2");
String email=result.getString("3");
String msg =result.getString("4");
参考示例:
import java.sql.*;
public class TestJDBC {
public static void main(String[] args){
ResultSet rs=null;
Statement stmt=null;
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver");//new一个实例,自动的向DriverManager注册
//2.new com.mysql.jdbc.Driver();
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
stmt=conn.createStatement();
rs=stmt.executeQuery("select * from t_message");
while(rs.next()){
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("name"));
System.out.println(rs.getString("email"));
System.out.println(rs.getString("msg"));
}
}catch(ClassNotFoundException ex){//没有找到驱动
ex.printStackTrace();//可以直接在此输出print驱动没找到
}catch(SQLException ex){
ex.printStackTrace(); //exception应该记录在log中出错时在进行查找
}finally{
try{//得判断是否有rs,是否需要close
if(rs!=null){
rs.close();//不加时出错因为close过程也会出现exception
rs=null;
}
if(stmt!=null){
stmt.close();
stmt=null;
}
if(conn!=null){
conn.close();
conn=null;
}
}catch(SQLException ex){
ex.printStackTrace();
}
}
}
}
运行结果:
1
xiaoming
xiaoming@mail.com
deudejuideu
2
xiaoming
xiaoming@mail.com
deudejuideu
3
xiaoming
xiaoming@mail.com
deudejuideu
4
deh
deh@126.com
fhwudweudwui
5
dshjuqw
dewhjuidw
dewhuidwe