第一个MyBatis程序

为什么使用Mybatis?

    为了和数据库进行交互,通常的做法是将SQL语句写在Java代码中,SQL语句和Java代码耦合在一起不利于后期维护修改,而MyBatis能够帮助我们将SQL语句和Java代码分离,方便了后期因需求变动而对SQL语句进行修改

jar包

其中:/mybatis/lib/mybatis-3.4.4.jar        下载地址http://www.mybatis.org/mybatis-3/

xml文件:

    一、配置类

    我们使用userinfo 类中的方法进行SQL语句:

<?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="club.shaoyu.userinfo.dao.IUserInfoDao">

	<select id="getById" resultType="java.lang.String">
		select name from user_info where id =#{id}
	</select>
	
	<select id="selectById" resultType="club.shaoyu.vo.UserInfo">
		select id,name,mobile,address from user_info where id =#{id}
	</select>
	
	<select id="select" resultType="club.shaoyu.vo.UserInfo">
		select id,name,mobile,address from user_info where name like #{name}
	</select>
	
	<delete id="delete">
		delete from user_info where id=#{id}
	</delete>
</mapper>

     其中的标签<mapper>标签作用

        namespace mapper下的语句是针对的哪一个类,由于模块化开发的原则:其中的userinfo中的访问数据库的类均放置在Dao层,我们为其建立相应的namespace对应的接口类,下面我们使用时其实使用的是实现类

       其下标签<select>,作用为 id的值为方法名,resultType为返回值的类型,其中#{}防止SQL注入,${}不可以防止SQL注入

       <delete> 作用是执行delete语句时使用

    二、配置环境

        (1)配置数据库

         <environments >中的default 的配置是-->指定下面配置的环境池<environment id="dev">其中id对应的就是前面的default

                <transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://127.0.0.1:3306/userinfo" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>

        其中transactionManager表示驱动方式JDBC,配置MySQL 的账号密码驱动等

      (2)连接相应的mapper

<mappers>
		<mapper resource="user_info.xml"/>
</mappers>

     (3)查看UserInfoDao层方法

package club.shaoyu.userinfo.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import club.shaoyu.vo.UserInfo;

public interface IUserInfoDao {

	String getById (@Param("id")int id);
	
	UserInfo selectById(@Param("id")int id);
	
	List<UserInfo> select(@Param("name")String name);
	
	boolean delete (@Param("id") int id);
}

        其中@Param(“###”)可以让(2)中的方法{ 只能输入和参数名}

    (4)test测试

            InputStream inputStream =Resources.getResourceAsStream("mybatis-config.xml");
			SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
			SqlSession session=sqlSessionFactory.openSession();//设置提交事务

        数据库连接设置

      一、输入流对象设置     二、建立SQL会话连接    三、建立一次会话

IUserInfoDao dao= session.getMapper(IUserInfoDao.class);

     通过session获取Mapper中的对象

    (5)调用方法测试(select方法)

                        System.out.println(dao.selectById(8));
			System.out.println(dao.getById(8));
			List<UserInfo> list=dao.select("%S%");
			for (UserInfo userInfo : list) {
				System.out.println(userInfo);
			}

        注:此时的返回值为一个对象时,特别注意的是使用select的方法是要将Java中的属性名一定是数据库搜索出的数据(可以在sql语句中用As改变搜索名字)

    (6)调试方法(delete方法)

         此时注意的是我们上面测试的方法中sqlSessionFactory.openSession()中默认的方法是不会自动提交事务

System.out.println(dao.delete(1));
session.commit();
session.close();

        注:此时的delete方法,返回的值可以是两个,其中true或者false;其次是返回受影响行数

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值