iBatis简单使用
1.模型类
public class User {
private int id;
private String name;
private String password;
public User() {}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public String toString() {
return name;
}
}
2.User.xml SqlMap配置文件
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<!-- Use type aliases to avoid typing the full classname every time. -->
<typeAlias alias="User" type="ibatis.User"/>
<!-- Result maps describe the mapping between the columns returned
from a query, and the class properties. A result map isn't
necessary if the columns (or aliases) match to the properties
exactly. -->
<resultMap id="UserResult" class="User">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="password" column="password"/>
</resultMap>
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAll" resultMap="UserResult">
select * from `User`
</select>
<!-- A simpler select example without the result map. Note the
aliases to match the properties of the target result class. -->
<select id="selectById" parameterClass="int" resultClass="User">
select
id,
name,
password,
from `User`
where id = #id#
</select>
<!-- Insert example, using the Account parameter class -->
<insert id="insert" parameterClass="User">
insert into `User` (
name,
password )
values (
#name#, #password#
)
</insert>
<!-- Update example, using the Account parameter class -->
<update id="update" parameterClass="User">
update `User` set
name = #name#,
password = #password#
where
id = #id#
</update>
<!-- Delete example, using an integer as the parameter class -->
<delete id="deleteById" parameterClass="int">
delete from `User` where id = #id#
</delete>
</sqlMap>
3.SqlMapConfig.xml文件
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="org.gjt.mm.mysql.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/test"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="password"/>
</dataSource>
</transactionManager>
<sqlMap resource="ibatis/User.xml"/>
</sqlMapConfig>
4.TestIbatis
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class TestIbatis {
public static void main(String[] args) throws IOException, SQLException {
Reader reader = Resources.getResourceAsReader("ibatis/SqlMapConfig.xml");
SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
User user = new User();
user.setName("user1");
user.setPassword("123456");
sqlMapper.insert("insert", user);
user.setName("user2");
user.setId(1);
sqlMapper.update("update", user);
List users = sqlMapper.queryForList("selectAll");
for (int i = 0; i < users.size(); i++) {
System.out.println(users.get(i));
}
}
}