① jdbc实现sql语句
用这个类吧.好的话,给我加加分.
import java.sql.*;
/**
* @功能: 一个JDBC的本地化API连接类,封装了数据操作方法,只用传一个SQL语句即可
* @作者: 李开欢
* @日期: 2007/
*/
public class ConnectionDemo {
/*
* 这里可以将常量全部放入另一个类中,以方便修改
*/
private static Connection conn;
private static Statement ps;
private static ResultSet rs;
private static final String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static final String URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
private static final String USER ="sa";
private static final String PASS = "sa";
public ConnectionDemo() {
// TODO Auto-generated constructor stub
ConnectionDemo.getConnection();
}
public static Connection getConnection(){
System.out.println("连接中...");
try {
Class.forName(ConnectionDemo.DRIVER);
conn = DriverManager.getConnection(ConnectionDemo.URL, ConnectionDemo.USER, ConnectionDemo.PASS);
System.out.println("成功连接");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static Statement getStatement(String sql){
System.out.println("执行SQL语句中...");
try {
ps = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
if(sql.substring(0, 6).equals("select")){
rs = ps.executeQuery(sql);
System.out.println("执行完查询操作,结果已返回ResultSet集合");
}else if(sql.substring(0, 6).equals("delete")){
ps.executeUpdate(sql);
System.out.println("已执行完毕删除操作");
}else if(sql.substring(0, 6).equals("insert")){
ps.executeUpdate(sql);
System.out.println("已执行完毕增加操作");
}else{
ps.executeUpdate(sql);
System.out.println("已执行完毕更新操作");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ps;
}
public static ResultSet getResultSet(){
System.out.println("查询结果为:");
return rs;
}
public static void closeConnection(){
System.out.println("关闭连接中...");
try {
if (rs != null) {
rs.close();
System.out.println("已关闭ResultSet");
}
if (ps != null) {
ps.close();
System.out.println("已关闭Statement");
}
if (conn != null) {
conn.close();
System.out.println("已关闭Connection");
}
} catch (Exception e) {
// TODO: handle exception
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ConnectionDemo.getConnection();
String sql = "delete from type where id = 1";
ConnectionDemo.getStatement(sql);
String sql2 = "insert into type values(1,'教学设备')";
ConnectionDemo.getStatement(sql2);
String sql1 = "select * from type";
ConnectionDemo.getStatement(sql1);
ResultSet rs = ConnectionDemo.getResultSet();
System.out.println("编号 "+"类 型");
try {
while(rs.next()){
System.out.print(" "+rs.getInt(1)+" ");
System.out.println(rs.getString(2));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ConnectionDemo.closeConnection();
}
}
② jdbc中同时执行两条查询sql语句,获得结果怎么写
step1:构造连接
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123");
step2:构造语句
String sql = "select username,password from t_user where username=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, "zhangshan"); //给SQL的"?"(问号)传值。
step3:执行查询
ResultSet rs = stmt.executeQuery(); //rs就是SQL查询语句返回的结果集
step4:处理结果(java 获取SQL查询语句返回的结果)
List list = new ArrayList();
//遍历结果集,这样写就可以了,就是一个循环,有多少条记录,这里就会循环多少次,
//一次就是一条记录,想象一下就像一个表的一条记录
//在这里可以做查询出来的数据处理,可以封装成对象之类的(就是把值给它)
if(rs.next()) { //遍历结果集,这样写就可以了
User u = new User();
String username = rs.getString("username");
String address = rs.getString("password ");
u.setUsername(username);
u.setAddress(address);
list.add(u);
}
//上面这个例子意思是,把每一条记录封装成了一个User对象,然后这些User对象都放存入到了一个list
step4:关闭连接等
③ java jdbc 执行sql语句批量操作问题
sql优化:
1.name字段创建索引
2.“table_c.*” 不要用”*“号,可以换成table_c.id,table_c.name,table_c.sex,table_c.email
如果可以的话,你和以在insert into table_a 中间加 append ,这样写 insert /*+ append */ into
希望能帮到你!
④ 求救!!怎样在java的jdbc中连续的执行多条SQL语句急急....
Statement有一个子类,PreparedStatement,专门用来执行多条结构相同的sql语句。
例子:
已得到一个连接引用connection
表hh 有 name varchar2的,id number(4) 型的。
String sql=“insert into hh values(?,?)
PreparedStatement pre=connection.prepareStatement(sql);
pre.setString(1,变量);
pre.setInt(2,变量); -----------〉在其他地方给变量传值,用命令行、或是写在一个方法内,用参数传值。
第一个问号用1,第二用2…………
还可以不用数字,用“name”、“id”
pre.executeUpdate(); (--pre.executeQuery()--也是这样)
API中java.sql包里都有,自己多看看。
⑤ 难道jdbc不能一次执行两条sql语句的吗
可以用addBatch、executeBatch的函数来实现
Statement ps=conn.createStatement();
ps.addBatch("update user set money=money-100 where name='张三'");
ps.addBatch("update user set money=money+100 where name='李四'");
ps.addBatch("update temp set count=count+1 where name='张三'");
ps.executeBatch();
⑥ jdbctemplate 批量执行sql怎么实现的
//应用场景: 如以下SQL : String sql = "INSERT INTO to_order_return_info VALUES(seq_order_return_info.nextval,?,?,?,?,?,?)"; 该语句为向to_order_return_info表中插入新记录 但如需要N条数据插入 正常的方案为 执行N次插入数据操作 jdbc ...
⑦ 在java比如说要运行两个sql.一个方法多个运行sql和一个方法一个sql哪个执行效率更好
一个方法运行一个sql和一个方法运行多个sql这就是换汤不换药的嘛,虽然是一个方法执行多个sql,和多个方法各执行一个sql效率几乎是相同的吧。如果说要讲究效率的话,就要减少查询的次数,尽可能多的在一次查询中查询到你所关心的数据。多次查询避免不了的你需要通过IO去访问数据库,有了IO的操作那你觉得速度能有多快呢?
只要你遵循一个原则,较少IO操作(你这里体现的就是数据库查询),那么效率就相对会提高的。
有问题你可以追问我,没问题,望采纳,谢谢!
⑧ jdbc怎样才能执行多条oracle语句啊比如2条delete2条update语句
定义出Connection con后,con.setAutoCommit(false)//设置非自动提交
在代码的try{
con.setAutoCommit(false);
//写SQL
// update a set XXXXXXXXXXXXXX;
// UPDATE B SET xxxxxxxxxxxxxxxxxxxxx;
}catch(){
//异常里con.rollback();//数据库回滚
}finally{
if(con != null){
con.commit();//提交
con.close();//连接关闭
}
}
这样要么全部成功,要么一条都不写入数据库
⑨ jdbc请求怎么写多条sql
Class.forName("xx.xx")等同于Class.forName("xx.xx",true,CALLClass.class.getClassLoader()),第二个参数(bool)表示装载类的时候是否初始化该类,即调用类的静态块的语句及初始化静态成员变量。 ClassLoader loader = Thread.currentThread.getContextClassLoader(); //也可以用