初学ibatis,实现了一个增删改查的例子:
database.properties:
driverClassName=com.mysql.jdbc.Driver url=jdbc\:mysql\://localhost\:3306/test username=root password=root
SqlMapConfig.xml:
<?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> <properties resource="database.properties"/> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="${driverClassName}"/> <property name="JDBC.ConnectionURL" value="${url}"/> <property name="JDBC.Username" value="${username}"/> <property name="JDBC.Password" value="${password}"/> </dataSource> </transactionManager> <sqlMap resource="com/cz/model/User.xml" /> </sqlMapConfig>
User.java
package com.cz.model; public class User { private int id; private String name; private String email; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
User.xml:
<?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.cz.model.User" /> <select id="findAll" resultClass="User"> select * from user </select> <select id="findUserById" resultClass="User" parameterClass="int"> select * from user where id = #value# </select> <insert id="addUser" parameterClass="com.cz.model.User"> insert into user(id,name,age,email) values(#id#,#name#,#age#,#email#) </insert> <update id="updateUser" parameterClass="com.cz.model.User"> update user set name = #name# where id=#id# </update> <delete id="deleteUser" parameterClass="int"> delete from user where id = #value# </delete> </sqlMap>
IUserDao.java
package com.cz.dao; import java.util.List; import com.cz.model.User; public interface IUserDao { //查询用户集合 public List<User> QueryUserList(); //根据id查询用户 public User QueryUserById(int id); //添加新用户 public void AddUser(User user); //修改用户信息 public int UpdateUser(User user); //删除用户 public void DeleteUserById(int id); }
UserDaoImpl:
package com.cz.dao; import java.io.*; import java.sql.SQLException; import java.util.List; import com.cz.model.User; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class UserDaoImpl implements IUserDao{ private static SqlMapClient sqlMap; static{ try { Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); } catch (IOException e) { e.printStackTrace(); } } //查询用户集合 public List<User> QueryUserList() { List<User> userList = null; try { userList = sqlMap.queryForList("findAll"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return userList; } //根据id查询用户 public User QueryUserById(int id) { User user=null; try { user=(User) sqlMap.queryForObject("findUserById", id); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return user; } //添加新用户 public void AddUser(User user) { // TODO Auto-generated method stub try { sqlMap.insert("addUser", user); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //修改用户信息 public int UpdateUser(User user) { // TODO Auto-generated method stub int a=0; try { a=sqlMap.update("updateUser",user); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return a; } //删除用户 public void DeleteUserById(int id) { // TODO Auto-generated method stub try { sqlMap.delete("deleteUser", id); } catch (SQLException e) { e.printStackTrace(); } } }
Test.java:
package com.cz.test; import java.util.List; import com.cz.dao.IUserDao; import com.cz.dao.UserDaoImpl; import com.cz.model.User; public class Test { public static void main(String[] args) { IUserDao userdao=new UserDaoImpl(); //查询用户集合 List<User> userList=userdao.QueryUserList(); for(User user:userList){ System.out.println(user.getId()+" "+user.getName()+" "+user.getAge()+" "+user.getEmail()); } // //根据id查询用户 // User user=new User(); // user=userdao.QueryUserById(2); // System.out.println(user.getId()+" "+user.getName()+" "+user.getAge()+" "+user.getEmail()); // //添加新用户 // User user=new User(); // user.setId(3); // user.setName("张三"); // user.setAge(30); // user.setEmail("[email protected]"); // userdao.AddUser(user); // //修改用户信息 // User user=new User(); // user.setId(1); // user.setName("哈哈"); // System.out.println(userdao.UpdateUser(user)); // //删除用户 // userdao.DeleteUserById(1); } }
下面上传项目需要的两个包: