ibatis入门

本文介绍了一个使用MyBatis框架进行数据库操作的具体配置案例,包括配置文件的设置、实体类定义、映射文件的创建及测试类的编写等步骤。通过此示例可以了解如何将MyBatis应用于实际项目中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/jprojector"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="123456"/>
</dataSource>
</transactionManager>

<sqlMap resource="domain/Login.xml" />
<!-- <sqlMap resource="domain/LoginGroup.xml" /> -->
</sqlMapConfig>


2 实体类

package domain;

public class Login {
private Integer loginId;
private String login;
private String password;
private Integer groupId;

public Login(){}

public Login(String login, String password){
this.login=login;
this.password=password;
}

public int getLoginId() {
return loginId;
}
public void setLoginId(int loginId) {
this.loginId = loginId;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public Integer getGroupId() {
return groupId;
}

public void setGroupId(int groupId) {
this.groupId = groupId;
}

}


3 map配置

<?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 namespace="Login">
<typeAlias alias="Login" type="domain.Login" />

<resultMap class="Login" id="LoginResult">
<result property="loginId" column="loginid" />
<result property="login" column="login" />
<result property="password" column="password" />
<result property="groupId" column="login_groupid" />
</resultMap>

<!-- select Login by id -->
<select id="selectLoginById" parameterClass="int" resultClass="Login">
select loginid as loginId, login, password, login_groupid as groupId from Login where loginid=#loginid#
</select>

<!-- select all -->
<select id="selectAllLogin" resultMap="LoginResult">
select * from login
</select>

<!-- insert -->
<insert id="insertLogin" parameterClass="Login">
insert into login (login, password
<dynamic prepend=",">
<isNotNull property="groupId">
login_groupid
</isNotNull>
</dynamic>
) values(#login#, #password#
<dynamic prepend=",">
<isNotNull property="groupId">
#groupId#
</isNotNull>
</dynamic>
)
</insert>
</sqlMap>

4 测试类

package util;

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;

import domain.Login;

public class Test {
private static SqlMapClient sqlMapper;
static{
try {
Reader reader=Resources.getResourceAsReader("config.xml");
sqlMapper=SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
}
}

public static Login selectLoginById (int loginid) throws SQLException {
return (Login)sqlMapper.queryForObject("selectLoginById", loginid);
}

public static List selectAllLogin() throws SQLException{
return sqlMapper.queryForList("selectAllLogin");
}

public static void insertLogin(Login login) throws SQLException{
sqlMapper.insert("insertLogin", login);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Login login=new Login("aaa@bbb.com","123456");
login.setGroupId(1);
insertLogin(login);
//Login login=selectLoginById(1);
//System.out.println(login.getLogin());
//List<Login> all=selectAllLogin();
//for(Login u:all){
//System.out.println(u.getLoginId()+"|"+u.getLogin()+"|"+u.getPassword());
//}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值