3.MyBatis(1)

-------------------------------------------------------MyBatis---------------------------------------------------------------
MyBatis:是一款持久层(DAO)的半自动ORM(自定义SQL)映射框架;
ORM:(objcet-Relayionl-Mapping)对象关系映射;
------------------------------------------------------------------------------
开发步骤:
    1.导包(ant-1.10.3.jar、ant-launcher-1.10.3.jar、asm-7.0.jar、cglib-3.2.10.jar、commons-logging-1.2.jar
        javassist-3.24.1-GA.jar、log4j-1.2.17.jar、log4j-api-2.11.2.jar、log4j-core-2.11.2.jar、mybatis-3.5.2.jar
        mysql-connector-java-8.0.11.jar、ognl-3.2.10.jar、slf4j-api-1.7.26.jar、slf4j-log4j12-1.7.26.jar)
    2.连接数据库文件: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>
    <environments default="mybatis">
        <environment id="mybatis">
            <!--mybatis采用的事务,和JDBC保持一致、MANAGED值表示交给其他事务管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--type="pooled"底层采用数据库连接池的方式连接-->
            <dataSource type="POOLED"><!--UNPOOLED -->
                <!--name的值不可以随便定义-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/junxie?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=Asia/Shanghai"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!--解析扫描mapper.xml-->
    <mappers>
        <mapper resource="com\junxie\mapper\UserMapper.xml"></mapper>
    </mappers>
</configuration>
------------------------------------------------------------------------------
    3.entity类(不写详细代码)
    4.映射文件:pojoMapper.xml(放在mapper包下)
------------------------------------------------------------------------------
<?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>
    <!--查询单个 User  selectOne(int id)
        查询所有 List<User> selectAll()-->
    <!--id:相当于方法名称
        resultType:相当于返回值的类型;如果返回的是集合:书写集合的泛型即可,必须书写全路径
        parameterType:参数的类型,可省略不写-->

    <select id="selectAll" resultType="com.junxie.entity.User" >
        select * from user
    </select>
</mapper>
------------------------------------------------------------------------------
框架完善
1.log4j日志使用 (配置文件log4j.properties  放到src下)
------------------------------------------------------------------------------
log4j.rootLogger=error,stdout,logfile

log4j.logger.com.junxie.mapper.UserMapper=debug

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=d:/bjsxt.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n
------------------------------------------------------------------------------
2.别名的设置(连接数据库文件:mybatis.xml)
<typeAliases>
        <!--给具体的某一个类取别名-->
        <!--<typeAlias type="com.junxie.entity.User" alias="abc"></typeAlias>-->
        <!--给包下所有的类取别名  别名就是我们的类名,在pojomapper.xml文件中使用类名设置返回值类型-->
        <package name="com.junxie.entity"/>
    </typeAliases>
------------------------------------------------------------------------------
3.属性文件的使用----jdbc.properties文件
------------------------------------------------------------------------------
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/junxie?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
username=root
password=root
------------------------------------------------------------------------------
<!--读取jdbc.properties文件-->
    <properties resource="jdbc.properties"></properties>

<environments default="mybatis">
        <environment id="mybatis">
            <!--mybatis采用的事务,和jdbc保持一致-->
            <transactionManager type="JDBC"></transactionManager>
            <!--type="pooled"底层采用数据库连接池的方式连接-->
            <dataSource type="POOLED">
                <!--name的值不可以随便定义-->
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
------------------------------------------------------------------------------
注意:(mybatis中配置的属性)
    1.属性文件的读取;
    2.指定日志log4j;
    3.给实体类起别名;
    4.配置连接数据库的环境
    5.扫描pojomapper.xml文件

------------------------------------------------------三种查询方式---------------------------------------------------------
方式一:selectList();返回一个集合;
方式二:selectOne();返回一条数据;
方式三:selectMap();返回map集合;  可以指定数据库中的那一列为key;(了解)
------------------------------------------------------三种参数传递方式---------------------------------------------------
在xxxmapper.xml文件中书写sql语句:

方式一:    select * from 表名 where uid=#{arg0} 
    #{arg0},#{arg1},#{arg2}......  下标从0开始;(不用这个)    
    #{param1},#{param2},#{param3}...... 表示第几个参数,从1开始;
方式二:    传递一个对象:User  user=new User; user.setuid=1;user.setuname=zs;
    select * from 表名 where uid=#{uid} and uname=#{uname} 
方式三:     传递一个map:Map<String,Object> map=new HashMap<>();map.put("1",1);map.put("2","zhansan");
     select * from 表名 where uid=#{1} and uname=#{2} 传进去的值是map中的key;
------------------------------------------------------------------------------
#{}---? 相当于占位符,安全系数高;
${}---字符串的拼接;
------------------------------------------------------增删改操作------------------------------------------------------------
 增删改操作返回值都是int,必须手动提交;

1.添加:
方法:int insert(User user);
sql:insert into user values(default,#{uname},#{pwd})
2.删除:
方法:int delete(int id)
sql:  delete from user where uid =#{param1}
3.修改:
方法:int update(User user)
sql:  update user set uname=#{uname},pwd=#{pwd} where uid =#{uid}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值