这是一个创建于 3721 天前的主题,其中的信息可能已经有所发展或是发生改变。
package demo1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DbConn {
// 创建静态全局变量
static Connection conn;
static Statement st;
public static void main(String[] args) {
insert(); //插入添加记录
query();
}
/* 插入数据记录,并输出插入的数据记录数*/
public static void insert() {
conn = getConnection1(); // 首先要获取连接,即连接到数据库
try {
String sql = "INSERT INTO emp(user_id,user_name,user_salary)"
+ " VALUES ('4', 'big','7777')"; // 插入数据的sql语句
st = (Statement) conn.createStatement(); // 创建用于执行静态sql语句的Statement对象//Statement st=?
int count = st.executeUpdate(sql); // 执行插入操作的sql语句,并返回插入数据的个数
System.out.println("向staff表中插入 " + count + " 条数据"); //输出插入操作的处理结果
conn.close(); //关闭数据库连接
} catch (SQLException e) {
System.out.println("插入数据失败" + e.getMessage());
}
}
/* 更新符合要求的记录,并返回更新的记录数目*/
/* 获取数据库连接的函数*/
public static Connection getConnection1() {
Connection con = null; //创建用于连接数据库的Connection对象
try {
Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/myuser","root", "1");// 创建数据连接
} catch (Exception e) {
System.out.println("数据库连接失败" + e.getMessage());
}
return con; //返回所建立的数据库连接
}
public static void query() {
conn = getConnection1(); //同样先要获取连接,即连接到数据库
try {
String sql = "select * from emp"; // 查询数据的sql语句
st = (Statement) conn.createStatement(); //创建用于执行静态sql语句的Statement对象,st属局部变量
ResultSet rs = st.executeQuery(sql); //执行sql查询语句,返回查询数据的结果集
System.out.println("最后的查询结果为:");
while (rs.next()) { // 判断是否还有下一个数据
// 根据字段名获取相应的值
String name = rs.getString("user_name");
int name_id = rs.getInt("name_id");
String user_salary = rs.getString("user_salary");
//输出查到的记录的各个字段的值
System.out.println(name + " " + name_id + " " +user_salary+ " ");
}
conn.close(); //关闭数据库连接z
} catch (SQLException e) {
System.out.println("查询数据失败");
}
}
}
代码很简单 一个 insert() 一个query()
插入一条数据之后 然后再查询一下,发现怎么都不显示结果 ,有没有大神帮忙看看什么问题。。
好想是rs这个对象一直没有获取到值。。。。
8 条回复 • 2014-08-17 15:28:05 +08:00
|
|
1
Aegwynn 2014-08-16 22:17:32 +08:00 1
我能吐槽一下这代码麽。。。 conn.commit(); close()建议放在finally中。
|
|
|
3
SoloCompany 2014-08-16 23:58:02 +08:00
建议用 glist 现在的 V2 的 Markdown 支持还没公开,这样贴代码看起来真心累 如果你是说插入的数据查询不到,然后在 mysql 或其它 console 中能看到的话 那么很可能就是你使用 Connection 的方法不对了
如果你从头到尾都是用同一个 Connection,那么应该没问题
如果你先申请了一个 conn1,然后一不小心手贱又多申请了一个 conn2 然后在其中一个 conn1 中执行了 insert,即使已经 commit 了,而 conn2 也是处于事务状态,那么很可能它是没法看到 conn1 中 insert 的结果的,请自行验证
|
|
|
4
xiluo 2014-08-17 02:23:08 +08:00
|
|
|
5
xiluo 2014-08-17 02:23:40 +08:00
|
|
|
6
xiluo 2014-08-17 02:25:08 +08:00
仔细看看27行和73行
|
|
|
8
xiaomao 2014-08-17 15:28:05 +08:00
搜索一下 单例模式
|