Mybatis基础

Mybatis 操作数据库

pom.xml 引入

  • mybatis 依赖
  • mysql 依赖
mybatis1
    ├─src
    │  ├─main
    │  │  ├─java
    │  │  │  └─com
    │  │  │      └─dalao4
    │  │  │          └─me
    │  │  │              ├─dao // StuDao.java  StuDao.xml
    │  │  │              └─domain // Stu.java
    │  │  └─resources // mybatis.xml  jdbc.properties
    │  └─test
    │      └─java
    │          └─com
    │              └─dalao4
    │                  └─me
    └─target
    ├─pom.xml
String config = "mybatis.xml";
InputStream in = Resources.getResourceAsStream(config);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
SqlSession sqlSession = factory.openSession();
// getMapper() 动态代理,自动创建 类 去执行 dao 接口里的方法
StuDao dao = sqlSession.getMapper(StuDao.class);
sqlSession.commit();
sqlSession.close();

Stu.java

public class Stu {
    private int id;
    private String name;
    private String email;

    @Override
    public String toString() {
        return "Stu{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

StuDao.java

public interface StuDao {
    // @Param("xxx") 对应 sql 语句 #{xxx},#{} 是 prepareStatement,${} 是 Statement
    public List<Stu> selectStu(@Param("name1") String name1, @Param("name2") String name2);

    public  List<Stu> selectStu2(Map<String, Object> map);

    public  List<Stu> selectStu3(String name);

    public  List<Stu> selectStu4(@Param("sid") Integer sid, @Param("namel") String namel, @Param("myid") List<Integer> stu);

    public int insertStu(Stu stu);
}

StuDao.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="com.dalao4.me.dao.StuDao">
        <!-- parameterType 参数类型,一般不写 -->
   <select id="selectStu" parameterType="java.lang.Integer" resultType="com.dalao4.me.domain.Stu">
        <!-- resultType 返回类型,一般用全限定名称,可自定义名称 -->
       select * from stu where  name=#{name1} or name=#{name2}
   </select>
------------------------------------------------------------------
    <resultMap id="stuMap" type="com.dalao4.me.domain.Stu">
        <!-- 主键用 id 标签,column 是 sql 字段名,property 是 java 属性名-->
        <id column="id" property="id"></id>
        <!-- 其他用 result 标签,将 property 的值赋给 column-->
        <result column="email" property="email"></result>
        <result column="name" property="name"></result>
    </resultMap>
    <select id="selectStu3" resultMap="stuMap">
        select id, name, email from stu where name like #{name}
    </select>
-------------------------------------------------------------------
    <!-- 定义 sql 语句 -->
    <sql id="selectStuSql">
        select id, name, email from stu
    </sql>
    <select id="selectStu4" resultType="com.dalao4.me.domain.Stu">
        <!-- 导入 sql 语句 -->
        <include refid="selectStuSql"></include>
        <!-- where 1=1 无伤大雅 -->
        <where>
            <!-- 对应 @Param("namel") -->
            <if test="namel != null and namel != ''">
                name=#{namel}
            </if>
            <!-- 对应 @Param("sid") -->
            <if test="sid > 1000">
                or name like '%k%'
            </if>
            <!-- 对应 @Param("myid"),foreach 一般用在 in 条件,遍历 myid 集合,mm 里面的每一项 -->
            or id in
            <foreach collection="myid" item="mm" open="(" close=")" separator=",">
                #{mm}
            </foreach>
        </where>
    </select>
-------------------------------------------------------------------
    <insert id="insertStu">
        INSERT INTO `stu` (`id`, `name`, `email`) VALUES (#{id}, #{name}, #{email});
    </insert>
</mapper>

mybatis.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>
<!-- 加载 jdbc 配置文件 -->
    <properties resource="jdbc.properties"></properties>
<!--    输出日志,执行 sql 可以看到过程-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
<!--    自定义别名-->
    <typeAliases>
<!--        第一种-->
<!--        <typeAlias type="com.dalao4.me.domain.Stu" alias="Stu"></typeAlias>-->
<!--        第二种-->
        <package name="com.dalao4.me.domain"/>
    </typeAliases>
    <environments default="development">
        <!-- 环境 -->
        <environment id="development">
            <!-- 事务类型-->
            <transactionManager type="JDBC"/>
            <!-- 数据源,连接池-->
            <dataSource type="POOLED">
<!--                <property name="driver" value="com.mysql.jdbc.Driver"/>-->
<!--                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydata"/>-->
<!--                <property name="username" value="root"/>-->
<!--                <property name="password" value="123456"/>-->

                                <!-- jdbc.properties 对应的名字 -->
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!-- <mapper resource="com/dalao4/me/dao/StuDao.xml"/> -->
        <!-- 加载 dao 文件夹下的所有 xml -->
        <package name="com/dalao4/me/dao"/>
    </mappers>
</configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值