您现在的位置是:主页 > news > 做视频网站用哪个模板/杭州网站推广与优化

做视频网站用哪个模板/杭州网站推广与优化

admin2025/6/16 23:03:57news

简介做视频网站用哪个模板,杭州网站推广与优化,java网站开发用什么软件,网站投放广告怎么做学习目标: 掌握SSM知识 学习内容: 1、MyBatis核心配置文件深入 2、MyBatis的多表操作 3、MyBatis注解开发 对应Spring_Demo中的day11_mybatis_config项目 学习笔记 1 MyBatis核心配置文件深入 1.1 typeHandlers标签 1.2.1 基本概念 也可以重写或创…

做视频网站用哪个模板,杭州网站推广与优化,java网站开发用什么软件,网站投放广告怎么做学习目标: 掌握SSM知识 学习内容: 1、MyBatis核心配置文件深入 2、MyBatis的多表操作 3、MyBatis注解开发 对应Spring_Demo中的day11_mybatis_config项目 学习笔记 1 MyBatis核心配置文件深入 1.1 typeHandlers标签 1.2.1 基本概念 也可以重写或创…

学习目标:

掌握SSM知识


学习内容:

1、MyBatis核心配置文件深入
2、MyBatis的多表操作
3、MyBatis注解开发

对应Spring_Demo中的day11_mybatis_config项目


学习笔记

1 MyBatis核心配置文件深入

1.1 typeHandlers标签

1.2.1 基本概念

也可以重写或创建自己的类型转换器来处理不支持的或非标准的类型

1.2.2 开发步骤

  1. 定义转换类继承类BaseTypeHandler
public class DateTypeHandler extends BaseTypeHandler<Date> {}

DateTypeHandler.java

  1. 覆盖4个未实现的方法
//负责将java类型转换成数据库需要的类型
@Override
public void setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType) throws SQLException {long time = date.getTime();preparedStatement.setLong(i,time);
}//将数据库中的某些数据的类型转换成java类型
//String参数 要转换的字段名称
//ResultSet 查询出的结果集
@Override
public Date getNullableResult(ResultSet resultSet, String s) throws SQLException {//获取结果集中需要的数据(long)转换成Date类型 返回long aLong = resultSet.getLong(s);Date date = new Date(aLong);return date;
}//将数据库中的某些数据的类型转换成java类型
@Override
public Date getNullableResult(ResultSet resultSet, int i) throws SQLException {//获取结果集中需要的数据(long)转换成Date类型 返回long aLong = resultSet.getLong(i);Date date = new Date(aLong);return date;
}//将数据库中的某些数据的类型转换成java类型
@Override
public Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException {//获取结果集中需要的数据(long)转换成Date类型 返回long aLong = callableStatement.getLong(i);Date date = new Date(aLong);return date;
}

DateTypeHandler.java

  1. 在MyBatis核心配置文件中进行注册
<!--    已定义注册类型处理器-->
<typeHandlers><typeHandler handler="com.example.handler.DateTypeHandler"></typeHandler>
</typeHandlers>

sqlMapConfig.xml

  1. 测试转换是否正确

1.2 plugins标签

1.2.1 分页助手PageHelper

将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据

1.2.2 开发步骤

  1. 导入通用PageHelper坐标
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.1</version>
</dependency>
<dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>4.0</version>
</dependency>

pom.xml

  1. 在mybatis核心配置文件中配置PageHelper插件
<!--    配置分页助手插件-->
<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor">
<!--            PageHelper插件4.0.0以后的版本支持自动识别使用的数据库-->
<!--            <property name="dialect" value="mysql"/>--></plugin>
</plugins>

sqlMapConfig.xml

  • 注意高版本的PageHelper不再实现com.github.pagehelper.PageHelper接口,所以应该配置com.github.pagehelper.PageInterceptor;同时高版本的PageHelper支持自动识别使用的数据库,不需要再配置<property name="dialect" value="mysql"/>
  1. 测试分页数据获取
@Test
public void test3() throws IOException {//获得核心配置文件InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");//获得session工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);//获得session会话对象SqlSession sqlSession = sqlSessionFactory.openSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);//设置分页的相关参数 当前页+每页显示条数PageHelper.startPage(1,3);List<User> userList = mapper.findAll();for (User user : userList) {System.out.println(user);}sqlSession.commit();sqlSession.close();
}

MyBatisTest.java

2 MyBatis的多表操作

2.1 一对一的配置实现

  • 方法一
<mapper namespace="com.example.mapper.OrderMapper"><resultMap id="orderMap" type="order">
<!--        手动指定字段与实体属性的映射关系column:数据表的字段名称property:实体的属性名称
--><id column="oid" property="id"></id>
<!--        <result column="ordertime" property="ordertime"></result>--><result column="total" property="total"></result><result column="uid" property="user.id"></result><result column="username" property="user.username"></result><result column="password" property="user.password"></result><result column="birthday" property="user.birthday"></result></resultMap><select id="findAll" resultMap="orderMap">select *,o.id oid from test.`order` o,test.`user` u where o.uid = u.id</select>
</mapper>

OrderMapper.xml

  • 方法二
<mapper namespace="com.example.mapper.OrderMapper"><resultMap id="orderMap" type="order">
<!--        手动指定字段与实体属性的映射关系column:数据表的字段名称property:实体的属性名称
--><id column="oid" property="id"></id>
<!--        <result column="ordertime" property="ordertime"></result>--><result column="total" property="total"></result><!--property:当前实体(order)中的属性名称(private User user)javaType:当前实体中的属性的类型
--><association property="user" javaType="user"><id column="uid" property="id"></id><result column="username" property="username"></result><result column="password" property="password"></result><result column="birthday" property="birthday"></result></association></resultMap><select id="findAll" resultMap="orderMap">select *,o.id oid from test.`order` o,test.`user` u where o.uid = u.id</select>
</mapper>

OrderMapper.xml

2.2 一对多的配置实现

<resultMap id="userMap" type="user"><id column="uid" property="id"></id><result column="username" property="username"></result><result column="password" property="password"></result><result column="birthday" property="birthday"></result>
<!--        配置集合property:集合名称ofType:当前集合中的数据类型
--><collection property="orderList" ofType="order">
<!--            封装order的数据--><id column="oid" property="id"></id>
<!--            <result column="ordertime" property="ordertime"></result>--><result column="total" property="total"></result></collection>
</resultMap><!--    <select id="findAll" resultType="user">-->
<!--         select * from user-->
<select id="findAll" resultMap="userMap">select *,o.id oid from test.`user` u ,test.`order` o where u.id = o.uid
</select>

UserMapper.xml

2.3 多对多的配置实现

<resultMap id="userRoleMap" type="user">
<!--        user信息--><id column="userId" property="id"></id><result column="username" property="username"></result><result column="password" property="password"></result><result column="birthday" property="birthday"></result>
<!--        user内部的roleList信息--><collection property="roleList" ofType="role"><id column="roleId" property="id"></id><result column="roleName" property="roleName"></result><result column="roleDesc" property="roleDesc"></result></collection>
</resultMap><select id="findAllRole" resultMap="userRoleMap">select * from test.`user` u ,test.`sys_user_role` sur ,test.`sys_role` sr where u.id = sur .userId and sr.id = sur .roleId
</select>

UserMapper.xml

3 MyBatis注解开发

3.1 MyBatis常用注解

3.2 注解完成基本的CRUD

<!--    加载映射关系-->
<mappers>
<!--        指定包下的接口所在的包--><package name="com.example.mapper"/>
</mappers>

sqlMapConfig.xml

@Insert("insert into user values(#{id},#{username},#{password},#{birthday})")
public void save(User user);

UserMapper.java

@Test
public void testSave(){User user = new User();user.setId(10);user.setUsername("qu");user.setPassword("123");mapper.save(user);
}

MyBatisTest.java

3.3 一对一的注解开发

  • 方法一
@Select("select *,o.id oid from test.`user` u ,test.`order` o where u.id = o.uid")
@Results({@Result(column = "oid",property = "id"),@Result(column = "ordertime",property = "ordertime"),@Result(column = "total",property = "total"),@Result(column = "uid",property = "user.id"),@Result(column = "username",property = "user.username"),@Result(column = "password",property = "user.password")})
public List<Order> findAll();

OrderMapper.java

  • 方法二
 @Select("select * from `order`")
@Results({@Result(column = "oid",property = "id"),@Result(column = "ordertime",property = "ordertime"),@Result(column = "total",property = "total"),@Result(property = "user",//要封装的属性名称column = "uid",//根据哪个字段去查询user表的数据javaType = User.class,//要封装的实体类型//select的属性 代表查询哪个接口的方法获得数据one = @One(select = "com.example.mapper.UserMapper.findById"))})
public List<Order> findAll();

OrderMapper.java

3.4 一对多的注解开发

@Select("select * from user")
@Results({@Result(column = "id", property = "id"),@Result(column = "username", property = "username"),@Result(column = "password", property = "password"),@Result(column = "birthday", property = "birthday"),@Result(property = "orderList",column = "id",javaType = List.class,many = @Many(select = "com.example.mapper.OrderMapper.findByUid"))
})
public List<User> findAllOrder();

UserMapper.java

@Select("select * from `order` where uid = #{uid}")
public List<Order> findByUid(int uid);

OrderMapper.java

public class MyBatisTest3 {private UserMapper mapper;@Beforepublic void before() throws IOException {InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);SqlSession sqlSession = sqlSessionFactory.openSession(true);mapper = sqlSession.getMapper(UserMapper.class);}@Testpublic void testFind(){List<User> all = mapper.findAllOrder();for (User user : all) {System.out.println(user);}}
}

MyBatisTest3.java