社区网站项目1.4Mybatis入门

  前提是先按照MySql Server和MySQL WorkBench,官网https://dev.mysql.com/downloads/mysql和https://dev.mysql.com/downloads/workbench。把下载到的Mysql Server解压,然后创建一个配置文件my.ini到C:\Program Files\MySQL\MySQL Server 8.0目录下,

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\\Program Files\\MySQL\\MySQL Server8.0
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 超时设置
wait_timeout=31536000
interactive_timeout=31536000

  把C:\Program Files\MySQL\MySQL\bin添加到环境变量Path中,但是初始化还是要cd到C:\Program Files\MySQL\MySQL\bin(并且是以管理员身份运行cmd),运行mysqld --initialize --console来初始化相关配置,找到password is generated for root@localhost后面的密码,把它拷贝下来。
  接下来执行mysqld install来正式安装服务,然后net start mysql启动服务。
  然后用普通方式打开cmd命令行,输入mysql -u root -p,用刚才记下来的密码登录,然后alter user root@localhost identified by ‘1221’;改密码为1221。exit退出后重新mysql -u root -p登录,输入新密码登录成功。然后创建数据库create database community,再use community,导入建表数据sourse D:/javing/workspace/community-init-sql-1.5/init_schema.sql,查看已建表show tables,接着导入表格数据sourse D:/javing/workspace/community-init-sql-1.5/init_data.sql,再show tables然后select 其中一个表来看看,可知在命令行查看表格非常不方便,所以要安装workbench。
  Mybatis官网是http://www.mybatis.org/mybatis-3,用spring整合mybatis文档看http://www.mybatis.org/spring。它的核心组件:
(1)SqlSessionFactory:用于创建SqlSession的工厂类。
(2)SqlSession:Mybatis的核心组件,用于向数据库执行SQL。
(3)主配置文件:XML配置文件,可以对MyBatis的底层行为做出详细的配置。
(4)Mapper接口:就是DAO接口,在MyBatis中习惯性的称之为Mapper。
(5)Mapper映射器:用于编写SQL,并将SQL和实体类映射的组件,采用XML、注解均可实现。
  去mvn库搜mysql和mybatis Spring Boot Starter以及连接池HikariCP并粘贴到pom.xml中。然后就可以在application.properties中配(代替XML主配置文件)

# DataSourceProperties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/community?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong
spring.datasource.username=root
spring.datasource.password=1221
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=30000

# MybatisProperties
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.nowcoder.community.entity
#自增主键id
mybatis.configuration.useGeneratedKeys=true
#让字段header_url(下划线命名方式)和属性headerUrl(驼峰命名方式)自动对应
mybatis.configuration.mapUnderscoreToCamelCase=true

  在entity包下建立User实体,在dao包中添加UserMapper接口,可以添加注解@Repository,但更mybatis习惯用@Mapper,它可以映射调用resources下mapper里相应的xml。可以在官网http://www.mybatis.org/mybatis-3找到mapper映射的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.nowcoder.community.dao.UserMapper">

    <sql id="insertFields">
        username, password, salt, email, type, status, activation_code, header_url, create_time
    </sql>

    <sql id="selectFields">
        id, username, password, salt, email, type, status, activation_code, header_url, create_time
    </sql>

    <select id="selectById" resultType="User">
        select <include refid="selectFields"></include>
        from user
        where id = #{id}
    </select>
    
    <insert id="insertUser" parameterType="User" keyProperty="id">
        insert into user (<include refid="insertFields"></include>)
        values(#{username}, #{password}, #{salt}, #{email}, #{type}, #{status}, #{activationCode}, #{headerUrl}, #{createTime})
    </insert>
</mapper>

这个xml文件一不小心写错很难定位错误,为此,如果需要可以在application.properties开启debug模式

# logger
logging.level.com.nowcoder.community=debug
logging.file.name=d:/work/data/nowcoder/community.log

把sql语句打印出来便于检查。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值