作者:Vinkn 来自http://www.cnblogs.com/Vinkn/
一、简介
Ibatis简介:
Ibatis是一个类似于Hibernate的数据库ORM(对象关系映射,通俗点就是将数据库表的一行与对象之间的转换),但是又不同于自动化的Hibernate,他是一个半自动的ORM,需要自己写sql语句,通过ORM框架,让你不再去自己加载数据库驱动,建立连接...
sqlite简介:
这是一个小型的数据库,使用它不需要安装,也仅仅只有一个数据文件(缺点是没有加密功能)。
简介百度一下,很多,简单的入门教程也很多,本片着重讲解Ibatis与sqlite集成。
二、环境搭建
1、创建数据库文件
在建立项目之前推荐先建好数据库文件,建好里面的表字段,推荐使用工具SQLite DataBase Browser。
2、建立项目与导包 建立一个项目java project,将需要的两个包放到lib目录下,添加到环境中。
ibatis-2.3.4.726.jar
sqlite-jdbc-3.7.2.jar
三、配置文件
1、Ibatis配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <!-- 使用JDBC的事务管理 --> <transactionManager type="JDBC"> <!-- 数据源 --> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="org.sqlite.JDBC" /> <property name="JDBC.ConnectionURL" value="jdbc:sqlite:test.db" /> <property name="JDBC.Username" value="" /> <property name="JDBC.Password" value="" /> </dataSource> </transactionManager> <!--实体的映射文件 --> <sqlMap resource="com/loadfate/domain/User.xml" /> </sqlMapConfig>
JDBC.ConnectionURL在不同环境下配置不同
Ⅰ、Java Project中:
jdbc:sqlite:test.db为项目路径下。
Ⅱ、Web项目中:
数据库文件在src中时: jdbc:sqlite::resource:upgradeserver.db
数据库文件在windows系统中时: jdbc:sqlite:/D:/upgradeserver.db
数据库文件在linux路径中时: jdbc:sqlite://home/zwq/upgradeserver.db
2、mapper配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap> <!--别名 --> <typeAlias alias="User" type="com.loadfate.domain.User" /> <!--查询全部用户 --> <select id="selectAllUser" resultClass="User"> select * from user </select> <!--通过Id查询,参数为int时,使用id取值 --> <select id="selectUserById" parameterClass="int" resultClass="User"> select * from user where userid=#id# </select> <!--添加用户 --> <insert id="addUser" parameterClass="User"> insert into user(username,password) values (#username#,#password#) </insert> <!--删除用户 --> <delete id="deleteUserById" parameterClass="int"> delete from user where userid=#id# </delete> <!--更改用户 --> <update id="updateUser" parameterClass="User"> update user set username=#username#,password=#password# where userid=#userid# </update> </sqlMap>
四、实现详解
1、IbatisUtil
private static SqlMapClient sqlMapClient = null; static { try { //加载配置文件 Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); } catch (IOException e) { e.printStackTrace(); } } private IbatisUtil() { } public static SqlMapClient getSqlMapClient() { return sqlMapClient; }
2、UserDao
SqlMapClient sqlMapClient = IbatisUtil.getSqlMapClient(); // 添加用户 public void addUser(User user) { try { sqlMapClient.insert("addUser", user); } catch (SQLException e) { e.printStackTrace(); } } // 更新用户 public void updateUser(User user) { try { sqlMapClient.update("updateUser", user); } catch (SQLException e) { e.printStackTrace(); } } // 删除用户 public void deleteUser(User user) { try { sqlMapClient.insert("deleteUserById", user.getUserid()); } catch (SQLException e) { e.printStackTrace(); } } // 获取所有用户 @SuppressWarnings("unchecked") public List<User> getAllUsers() { List<User> users = null; try { users = sqlMapClient.queryForList("selectAllUser"); } catch (SQLException e) { e.printStackTrace(); } return users; } // 通过id获取用户 public User getUser(int userid) { User user = null; try { user = (User) sqlMapClient.queryForObject("selectUserById", userid); } catch (SQLException e) { e.printStackTrace(); } return user; }
3、Test
public static void main(String[] args) { User user=new User(); user.setUsername("张三"); user.setPassword("123456"); UserDao userDao=new UserDao(); userDao.addUser(user); User user2=userDao.getUser(1); System.out.println(user2.getUsername()); }
五、下载地址
项目文件夹:ibatis4sqlite
下载地址:http://pan.baidu.com/s/1bn1Y6BX
如果有什么疑问或者建议,请联系我