我使用sqlite建立数据库后,为什么我使用insert语句后,虽然程序有显示正常,可是我的db文件里面还是没有数据
源代码:
/**
* 功能:数据库连接类
*/
package dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class Dao{
// static Connection conn = null;
static Statement stmt = null;
static ResultSet rs = null;
static
{
try
{
Class clz = Class.forName("SQLite.JDBCDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlite:/DATA/1.db");
conn.setAutoCommit(false);
stmt = conn.createStatement();
}catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Dao()
{
}
public static void main(String[] args)
{
System.out.println("数据库测试类");
// new Dao();
try
{
stmt.executeUpdate( "create table tbl1(name varchar(20), salary int);" );//创建一个表,两列
stmt.executeUpdate( "insert into tbl1 values('ZhangSan',8000);" ); //插入数据 stmt.executeUpdate( "insert into tbl1 values('LiSi',7800);" );
stmt.executeUpdate( "insert into tbl1 values('WangWu',5800);" );
stmt.executeUpdate( "insert into tbl1 values('ZhaoLiu',9100);" );
stmt.executeUpdate( "update tb_every_day_count set edc_date = '1111';" );
rs = stmt.executeQuery("select * from tbl1"); //查询数据 while (rs.next()) { //将查询到的数据打印出来 System.out.print("name = " + rs.getString("name") + " "); //列属性一 System.out.println("salary = " + rs.getString("salary")); //列属性二 }
rs.close();
}catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
源代码:
/**
* 功能:数据库连接类
*/
package dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class Dao{
// static Connection conn = null;
static Statement stmt = null;
static ResultSet rs = null;
static
{
try
{
Class clz = Class.forName("SQLite.JDBCDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlite:/DATA/1.db");
conn.setAutoCommit(false);
stmt = conn.createStatement();
}catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Dao()
{
}
public static void main(String[] args)
{
System.out.println("数据库测试类");
// new Dao();
try
{
stmt.executeUpdate( "create table tbl1(name varchar(20), salary int);" );//创建一个表,两列
stmt.executeUpdate( "insert into tbl1 values('ZhangSan',8000);" ); //插入数据 stmt.executeUpdate( "insert into tbl1 values('LiSi',7800);" );
stmt.executeUpdate( "insert into tbl1 values('WangWu',5800);" );
stmt.executeUpdate( "insert into tbl1 values('ZhaoLiu',9100);" );
stmt.executeUpdate( "update tb_every_day_count set edc_date = '1111';" );
rs = stmt.executeQuery("select * from tbl1"); //查询数据 while (rs.next()) { //将查询到的数据打印出来 System.out.print("name = " + rs.getString("name") + " "); //列属性一 System.out.println("salary = " + rs.getString("salary")); //列属性二 }
rs.close();
}catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
解决方案 »
- 问一个关于list的问题
- 一个关于super的问题,麻烦高手解疑,谢谢!
- 小虾求教接口问题:为什么要子类实例化接口 而不是实例化一个子类对象呢
- java面板组件/图形界面设计问题
- JWindow 问题
- (Struts 2) 请问什么是action,什么是拦截器,struts.xml是做什么的?谢谢
- java控件 类QQ控件 有没有知道是什么空间的啊
- oracle语句 start with ....connect by中怎样对子结点排序??
- 哪位高手能提供一个类似cell的控件(在java下使用)?
- 问一个比较简单的问题 frame 的 setSize()放在那里比较合适
- 网站头部用JAVA的脚本来实现
- java程序问题,请高手帮忙看下。。。
因为你里面有这样一行 conn.setAutoCommit(false);,所以SQL语句不会自动提交,而且你整个程序都没有Statement和Connection的关闭语句,所以SQL最终根本没有提交所以解决方法有两个
第一,取消 conn.setAutoCommit(false);
第二,JDBC操作完毕及时关闭Statement和Connection
第二种就是conn.setAutoCommit(false);注解掉,或设置conn.setAutoCommit(true);默认状态是自动提交的