初学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("zs@sina.com");
// userdao.AddUser(user);
// //修改用户信息
// User user=new User();
// user.setId(1);
// user.setName("哈哈");
// System.out.println(userdao.UpdateUser(user));
// //删除用户
// userdao.DeleteUserById(1);
}
}
下面上传项目需要的两个包: