一:request.getParameter(“userName”);获取传入的值
二:Mybatis配置时只需要将generator.properties中的table名字换成数据库中的表名称,再使用Maven工具直接
generator就行了,将生成三个文件[table名称]Mapper.xml,dao接口和一个entity实体类
/*
private ApplicationContext applicationContext;
@Autowired
private MessageMapper mapper;
// 加载spring配置文件
applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
// 导入需要测试的
mapper = applicationContext.getBean(MessageMapper.class);
Message message = new Message();
message.setCommand("吃饭6");
message.setContent("睡觉");
message.setDescription("打豆豆");
int result = mapper.insert(message);
System.out.println(result);
assert (result == 1);
*/
三:当自己想写符合自己需求的SQL语句时,只需要MessageMapper.xml里写就行了,MessageMapper.xml典型的语句为:
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from message
where id = #{id,jdbcType=INTEGER}
</select>
然后自己写的时候需要把id的值改写成自己命名的,这个id相当于一个类名,下面是我写的SQL语句,parameterType为调用SQL语句时传入的值的类型, resultType为返回值类型,
<select id="selectByName" resultType="java.lang.String" parameterType="java.lang.String">
select group_concat(command)<!--group_concat结果集有多个时确保可以接收-->
from message
where command= #{command,jdbcType=VARCHAR}
</select>
然后还需要再相应的的Mapper接口中定义这个id名对应的方法
String selectByName(String command);
最后是mybatis的使用方法:
@Controller
@RequestMapping("/MySSM/controller")
public class signInController {
private ApplicationContext applicationContext;
@Autowired
private LogindataMapper mapper;
@RequestMapping(value = "/signInResultPage")
public ModelAndView signInResult(HttpServletRequest request) {
// 加载spring配置文件
applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
// 获取bean
mapper = applicationContext.getBean(LogindataMapper.class);
//定义返回的视图
ModelAndView mAv=new ModelAndView();
mAv.setViewName("signInResultPage");
String userName=request.getParameter("userName");//获取输入的账号
String password=request.getParameter("password");//获取输入的密码
//开始添加数据,这里需要控制如果用户名相同的话则不予以添加
if(mapper.selectByName(userName)==null){
Logindata logindata=new Logindata();
logindata.setUsername(userName);
logindata.setPassword(password);
int result = mapper.insert(logindata);
System.out.println("插入结果->:"+result);
assert (result == 1);
}
else {
mAv.setViewName("errorPage");
}
return mAv;
}
}
定义一个ApplicationContext以获取bean 然后定义bean类型也就是mapper类型就可以直接调用SQL语句了
放一个github地址: