如何识别企业网站的制作方?
摘要:关于企业的网站,怎么看是哪家做的网站,wordpress下载权限,长沙做优化的公司目录 1、Mapper接口和映射文件关系 2、Mapper接口和映射文件的命名规则 2.1 Mapper接口的命名规则 2.2 映射文件的命名规则 3、Map
关于企业的网站,怎么看是哪家做的网站,wordpress下载权限,长沙做优化的公司目录
1、Mapper接口和映射文件关系
2、Mapper接口和映射文件的命名规则
2.1 Mapper接口的命名规则
2.2 映射文件的命名规则
3、Mapper接口和映射文件的创建及增删改查的实现
3.1 Mapper接口和映射文件的创建
3.2 增删改查的实现
3.2.1表结构
3.2.2 创建表User对应的实…目录
1、Mapper接口和映射文件关系
2、Mapper接口和映射文件的命名规则
2.1 Mapper接口的命名规则
2.2 映射文件的命名规则
3、Mapper接口和映射文件的创建及增删改查的实现
3.1 Mapper接口和映射文件的创建
3.2 增删改查的实现
3.2.1表结构
3.2.2 创建表User对应的实体类
3.3.3 创建表User对应的Mapper接口
3.3.4 创建UserMapper接口对应的映射文件并实现Sql语句
4、MyBatis核心配置文件关联Mapper接口和映射文件
5、测试Mapper接口中的方法
6、测试结果 1、Mapper接口和映射文件关系
个人理解为Mapper接口类似于以前的Dao接口映射文件类似于实现Dao接口中的各个方法。
在Mapper接口中定义了对数据库的各种操作方法这些方法的实现需要在映射文件编写各种SQL语句。
2、Mapper接口和映射文件的命名规则
一个Mapper接口映射文件对应一个实体类对应一张表的操作方法SQL语句。Mapper接口用于声明操作数据库的方法 MyBatis映射文件用于编写SQL访问以及操作表中的数据。
MyBatis的Mapper接口的位置是src/main/项目名/mappers目录下映射文件存放的位置是src/main/resources/mappers目录下。
2.1 Mapper接口的命名规则
表所对应的实体类的类名Mapper
例如表t_user对应的实体类为User所对应的Mapper为UserMapper。
2.2 映射文件的命名规则
表所对应的实体类的类名Mapper.xml
例如表t_user映射的实体类为User所对应的映射文件为UserMapper.xml 。
3、Mapper接口和映射文件的创建及增删改查的实现
3.1 Mapper接口和映射文件的创建
Mapper接口的创建和普通的Java接口创建方法相同。
映射文件的创建如下mapper标签中的namespace属性是mapper接口的路径。
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespaceMapper接口路径/mapper
3.2 增删改查的实现
下面以表t_user为例创建Mapper接口和映射文件,实现基本的增删改查。
3.2.1表结构
t_user表的结构如查下所示 3.2.2 创建表User对应的实体类
public class User {private Integer id;private String userName;private String password;private Integer age;private char gender;public User() {}public User(Integer id, String userName, String password, Integer age, char gender) {this.id id;this.userName userName;this.password password;this.age age;this.gender gender;}public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public char getGender() {return gender;}public void setGender(char gender) {this.gender gender;}Overridepublic String toString() {return User{ id id , userName userName \ , password password \ , age age , gender gender };}
}
3.3.3 创建表User对应的Mapper接口
import com.review.mybatis.pojo.User;public interface UserMapper {//添加用户int insertUser(User user);//根据用户名和密码删除用户int deleteUser(String username,String password);//修改用户信息int modifyUser(User user,Integer id);//根据用户名查询用户信息User getUserByUsername(String username);
}3.3.4 创建UserMapper接口对应的映射文件并实现Sql语句
MyBatis中可以面向接口操作数据要保证两个一致
1、mapper接口的全类名和映射文件的命名空间namespace保持一致
2、mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.review.mybatis.mapper.UserMapper
!-- int insertUser(User user);--insert idinsertUser insert into t_user(id,userName,password,age,gender) values(null,#{userName},#{password},#{age},#{gender})/insert
!-- int deleteUser(String username,String password);--delete iddeleteUserdelete from t_user where username#{arg0} and password#{arg1}/delete
!-- int modifyUser(User user,Integer id);--update idmodifyUser update t_user set username#{arg0.userName},password#{arg0.password},age#{arg0.age},gender#{arg0.gender} where id#{arg1}/update
!-- User getUserByUsername(String username);--select idgetUserByUsername resultTypeUserselect id,username,password,age,gender from t_user where username#{arg0}/select
/mapper
上述代码中mapper接口和映射文件要保证一致
①mapper接口的全类名和映射文件的namespace一致
②mapper接口的方法的方法名和映射文件中的sql的id保持一致
执行UserMapper接口中的方法时通过映射文件中属性id绑定的方法名执行Sql语句。
对于查询操作resultType:设置结果类型记查询的数据要转换成的java类型代码中将数据转成User类型
MyBatis获取参数值的两种方式${}和#{}。
${}的本质就是字符串拼接#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql若为字符串类型或日期类型的字段进行赋值时需要手动加单引号但是#{}使用占位符赋值的方式拼接sql此时为字符串类型或日期类型的字段进行赋值时可以自动添加单引号。
映射文件中无法识别Mapper接口方法中的形参若mapper接口中的方法参数为一个时可以用任何字符串表示该参数若mapper接口中的方法参数为多个时 此时MyBatis会自动将这些参数放在一个map集合中以arg0,arg1...为键以参数为值以 param1,param2...为键以参数为值因此只需要通过${}和#{}访问map集合的键就可以获取相对应的值。
4、MyBatis核心配置文件关联Mapper接口和映射文件
通过包设置类型别名指定包下所有的类型将全部拥有默认的别名即类名且不区分大小写,方便UserMapper.xml文件中resultType属性的设置
resultType”User“等同于resultTypecom.review.mybatis.pojo.User
通过包设置类型别名如下所示
typeAliasespackage namecom.review.mybatis.pojo/
/typeAliases
以包的方式引入映射文件在通过Mapper接口调用方法时通过MyBatis核心配置文件查找到映射文件的位置从而执行sql语句。但是以包的方式引入映射文件必须满足两个条件 1、mapper接口和映射文件所在的包必须一致 2、mapper接口的名字和映射文件的名字必须一致
如下所示 mapperspackage namecom.review.mybatis.mapper//mappers 完整的MyBatis核心配置文件如下
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttps://mybatis.org/dtd/mybatis-3-config.dtd
configuration!--MyBatis核心配置文件中的标签必须要按照指定的顺序配置properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?--properties resourcejdbc.properties/typeAliasespackage namecom.review.mybatis.pojo//typeAliasesenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//dataSource/environmentenvironment idtesttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/ssm/property nameusername valueroot/property namepassword value123456789//dataSource/environment/environmentsmapperspackage namecom.review.mybatis.mapper//mappers
/configuration
MyBatis配置文件:配置连接数据库的环境,实现数据库连接_qq_46053741的博客-CSDN博客
5、测试Mapper接口中的方法
创建一个测试类测试Mapper接口中的方法:
import com.review.mybatis.mapper.UserMapper;
import com.review.mybatis.pojo.User;
import com.review.mybatis.utils.JdbcUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;public class UserMapperTest {Testpublic void insertUser() {SqlSession sqlSession JdbcUtil.getSqlSession();//获取UserMapper的代理实现类对象UserMapper userMappersqlSession.getMapper(UserMapper.class);int isInsert0;isInsertuserMapper.insertUser(new User(null,小黑子,1234,34,男));if(isInsert0){System.out.println(数据添加成功);}else{System.out.println(数据添加失败);}JdbcUtil.closeSqlSessionAndCommit(sqlSession);}Testpublic void deleteUser() {SqlSession sqlSession JdbcUtil.getSqlSession();//获取UserMapper的代理实现类对象UserMapper userMappersqlSession.getMapper(UserMapper.class);int isDelete0;isDeleteuserMapper.deleteUser(蔡徐坤,123456);if(isDelete0){System.out.println(数据删除成功);}else{System.out.println(数据删除失败);}JdbcUtil.closeSqlSessionAndCommit(sqlSession);}Testpublic void modifyUser() {SqlSession sqlSession JdbcUtil.getSqlSession();//获取UserMapper的代理实现类对象UserMapper userMappersqlSession.getMapper(UserMapper.class);User usernew User(3,小黑子,1234,30,男);int isModify0;isModifyuserMapper.modifyUser(user,3);if(isModify0){System.out.println(数据修改成功);}else{System.out.println(数据修改失败);}JdbcUtil.closeSqlSessionAndCommit(sqlSession);}Testpublic void getUserByUsername() {SqlSession sqlSession JdbcUtil.getSqlSession();//获取UserMapper的代理实现类对象UserMapper userMappersqlSession.getMapper(UserMapper.class);User useruserMapper.getUserByUsername(小黑子);System.out.println(user);JdbcUtil.closeSqlSessionAndCommit(sqlSession);}
}
代码中UserMapper接口无法实例化对象因此采用UserMapper的代理实现类对象
UserMapper userMappersqlSession.getMapper(UserMapper.class);
6、测试结果
int insertUser(User user)测试结果
控制台 数据库 int modifyUser(User user,Integer id)测试结果
控制台 数据库 User getUserByUsername(String username)测试结果
控制台 int deleteUser(String username,String password)测试结果
控制台 数据库
