|
一、首先登陆http://www.sqlite.org/下载sqlite数据库。
此次学习下载的版本是:sqlite-shell-win32-x86-3080900.zip
二、将下载的文件解压到相应的目录后即完成了安装。(是不是超级简单:)),解压完成后只有一个文件sqlite3.exe
三、打开cmd命令窗口。进入到sqlite的安装目录(shell版本的目录中),运行命令:sqlite3 mydb.db,即创建了一个数据库名称为mydb的数据库
四、建表:
create table t_person(
p_id integer,
p_name text(30),
p_age integer
); 即创建了一个简单的表。crud所使用的语句和普通的sql几乎相同。
五、c3p0使用sqlite数据库在spring中的配置如下:驱动下载地址:https://bitbucket.org/xerial/sqlite-jdbc/downloads
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
<value>org.sqlite.JDBC</value>
</property>
<property name="jdbcUrl">
<value>jdbc:sqlite:f:/a/sqlite-shell/test.db</value>
</property>
<!--连接池中保留的最小连接数。 -->
<property name="minPoolSize" value="10" />
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize" value="100" />
<!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime" value="1800" />
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement" value="5" />
<property name="maxStatements" value="1000" />
<property name="initialPoolSize" value="10" />
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="60" />
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts" value="30" />
<property name="breakAfterAcquireFailure" value="true" />
<property name="testConnectionOnCheckout" value="false" />
</bean>
六、使用jdbc连接sqlite数据库
首先导入sqlite驱动包,可以在https://bitbucket.org/xerial/sqlite-jdbc/downloads下载
public static User getUser(Integer userId) throws Exception{
User user = new User();
Class.forName("org.sqlite.JDBC");
Connection c =DriverManager.getConnection("jdbc:sqlite:"+"f:/a/sqlite-shell/test.db");
System.out.println("jdbc:sqlite:"+"f:/a/sqlite-shell/test.db");
String sql ="select * from t_user where user_id =1";
Statement stat = c.createStatement();
ResultSet rs = stat.executeQuery(sql);
while(rs.next()){
user.setUserId(rs.getInt("user_id"));
user.setUserName(rs.getString("user_name"));
}
return user;
}
默认sqlite数据库没有用户名和密码。
|