您的位置:首页 > 其它

jdbc

2016-12-13 00:59 79 查看
连接数据库
配置MySQL数据库的驱动程序
下载 mysql-connector-java-5.1.39.zip,复制到jdk的所在处

public class jdbc {

public static final String DRIVER="org.gjt.mm.mysql.Driver";

public static void main(String[] args){

try{

System.out.println(Class.forName(DRIVER)) ;

}catch(ClassNotFoundException e){

e.printStackTrace() ;

}

}

}
          

若能输出Class名,则已配置好了
为什么调用Class.forName(),却没有newInstance(); 
Class.forName() 加载了指定类后,若类中有静态初始化器,JVM必然会执行该类的静态代码段,而JDBC的Driver类都是会有static代码块  

DriverManager
getConnection(String url, String user ,String password) :通过连接地址链接数据库,同时输入用户名和密码
url:  jdbc:mysql://  ip地址 : 端口号/ 数据库名称             
jdbc协议:JDBC URL中的协议总是jdbc
子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,如mysql
子名称:一种标识数据库的方法,必须遵循”//主机名 : 端口/子协议"  的标准URL命名    约定

Connection接口

执行数据库的更新操作
Statement接口,通过Connection接口的createStatement()方法实例化,来操作数据库

public static final String DRIVER="org.gjt.mm.mysql.Driver";

public static final String URL="jdbc:mysql://localhost:3306/newsql";

public static final String USERNAME="root";

public static void main(String[] args)throws Exception{
Connection conn=null;

Statement statement=null;

String sql="insert into newtable(name) values('ccw')";

try{ 

Class.forName(DRIVER);  //加载驱动

}catch(ClassNotFoundException e){

e.printStackTrace() ;

}

conn=DriverManager.getConnection(URL,USERNAME,USERNAME);

statement=conn.createStatement();

statement.executeUpdate(sql);

try{

statement.close();
    //先开后关闭,可以只关闭connection
conn.close();

	}catch(Exception e){

e.printStackTrace();

	}

}


ResultSet接口
接受所查询的记录,并显示内容,开发中要限制查询数量
Statement接口的executeQuery() 方法,返回一个ResultSet对象

ResultSet rSet=statement.executeQuery(sql);

while(rSet.next()){

int id=rSet.getInt("id");          //int id=rSet.getInt(1);

String name=rSet.getString("name");  //String name=rSet.getString(2);

String sex=rSet.getString("sex");          //....

System.out.println(id+name+sex);

}


ResultSet的所有数据都可以通过getString()方法获得

PreparedStatement接口
是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,是先在数据表中准备好了一条SQL语句,但是此SQL语句的具体内容暂时不设置,而是之后在进行设置,即占住此位置等待用户设置
String sql="insert into newtable(name,sex) values(?,?)";

pStatement=conn.prepareStatement(sql);    //实例化

pStatement.setString(1, name);

pStatement.setString(2, sex);

pStatement.executeUpdate();


注意:开发中不建议使用Statement来操作数据库,而是使用PreparedStatement,因为Statement是完整的SQL语句
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: