通过MyBatis 访问数据库

本文介绍如何使用MyBatis框架进行数据库操作。包括配置文件设置、XML映射文件编写及Java代码实现。

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

MyBatis 的前身就是 iBatis ,是一个数据持久层(ORM)框架,与Hibernate差不多,但不同之处肯定是有的,在此不进行讨论。直奔主题吧:

首先你得引入jar包,我所只用的jar包为:mybatis-3.0.6.jar

然后创建两个配置文件放入“src”下,具体代码如下:

DBMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cas.User">
	
	<select id="getSsoUser" parameterType="edu.yale.its.tp.cas.auth.provider.SsoUser" resultType="String">
	<![CDATA[
		SELECT count(1) as cnt FROM ssouser WHERE username=#{username} and password=#{password}
	]]>
	</select>

</mapper>
parameterType表示传进来的参数类型,我这里表示的是传进来的是一个JavaBean,然后里面的属性名称与大括号中的名称相对应,这样的话即可获得JavaBean中的值啦!

DBConfiguration.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<environments default="MYSQLDATABASE">
		<environment id="MYSQLDATABASE">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="username" value="root" />
				<property name="password" value="root" />
				<property name="driver" value="org.apache.derby.jdbc.ClientDriver" />
				<property name="url" value="jdbc:derby://localhost:1527/casdb" />
				<property name="poolMaximumActiveConnections" value="1000"/>
				<property name="poolMaximumIdleConnections" value="100"/>
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="DBMapper.xml" />
	</mappers>
</configuration>
相对应的Java代码:

package edu.yale.its.tp.cas.auth.provider;

import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
 * 用户名与密码验证
 */

public class DataHandler extends WatchfulPasswordHandler {

	public static String DB_CONFIG_FILE = "DBConfiguration.xml";
	public static SqlSessionFactory sqlSessionFactory = null;

	public boolean authenticate(javax.servlet.ServletRequest request,
			String username, String password) {

		SsoUser user = new SsoUser();
		user.setUsername(username);
		user.setPassword(password);
		Reader reader;
		if (sqlSessionFactory == null) {
			try {
				reader = Resources.getResourceAsReader(DB_CONFIG_FILE);
				sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
			} catch (IOException e1) {
				sqlSessionFactory = null;
			}
		}
		SqlSession sqlSession = sqlSessionFactory.openSession(true);
		String cnt = (String)sqlSession.selectOne("getSsoUser", user);
		if("1".equals(cnt)){
			return true;
		}
		sqlSession.close();


		return false;
	}
}

OK,大功告成,其他的扩展信息有时间在发布吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值