提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
1.创建Mybatis配置文件mybatis-config.xml
提示:
resources文件下新建
2.创建实体类对象
- 新建一个com.etc.bean包
- 新建Employee 类,Department类属性对应数据库employee 表,department表的属性
Employee :
Department:
3.编写接口
- 创建com.etc.dao包
- 创建Employee Dao接口
- 创建 Department Dao接口
4.编写接口的实现类Employee \Department Mapper.xml
5.测试是否可以用
EmployeeTest\DepartmentTest
- Employee:
- findByEid
- findAll
- add\update
- delete
- Department:
- findByDid\selectAll
- add\update
- delete
二、多条件查询
1、分别增加查询方法
1)EmployeeDao
/**
* 多条件查询
* @param name 员工姓名
* @param sex 员工性别
* @return 员工对象集合
*/
public List<Employee> queryList(String name,char sex);
/**
* 多条件查询2
* @param name 姓名
* @param sex 性别
* @return 员工对象集合
*/
public List<Employee> queryList2(@Param("name") String name, @Param("sex") char sex);
/**
* 多条件查询
* @param map 查询参数集合
* @return 员工对象集合
*/
public List<Employee> queryList3(Map map);
/**
* 模糊查询
*/
public List<Employee> queryByIf(Employee emp);
2)Employee Mapper.xml
<!-- #{}默认采用预处理方式去处理Sql语句 -->
<!-- ${}默认采用 非预处理方式去处理数据 -->
#和$的区别
1、#和$两者含义不同 #会把传入的数据都当成一个字符串来处理,会在传入的数据上面加一个双引号来处理。 而$则是把传入的数据直接显示在sql语句中,不会添加双引号。
2、两者的实现方式不同
(1)$作用相等于是字符串拼接 相当于使用StringBuffer的append方法将${username}$追加在 select username,password from t_login where username=后面,拼接在一起。
(2)#作用相当于变量值替换 相当于使用PreparedStement接口来对#{username}#来进行赋值操作。
3、#和$使用场景不同
(1)在sql语句中,如果要接收传递过来的变量的值的话,必须使用#。因为使用#是通过PreparedStement接口来操作,可以防止sql注入,并且在多次执行sql语句时可以提高效率。 (2)$只是简单的字符串拼接而已,所以要特别小心sql注入问题。对于sql语句中非变量部分,那就可以使用$,比如$方式一般用于传入数据库对象(如传入表名)。
<!--属性查询-->
<select id="queryList" resultType="com.etc.bean.Employee">
select * from employee where ename like '${param1}%' and esex = #{param2}
</select>
<!--使用起别名的方式完成-->
<select id="queryList2" resultType="com.etc.bean.Employee">
select * from employee where ename like '%${name}%'and esex = #{sex}
</select>
<!-- 使用Map容器传参-->
<select id="queryList3" resultType="com.etc.bean.Employee">
select * from employee where ename like '%${userName}%'and esex = #{userSex}
</select>
<select id="queryByIf" resultType="com.etc.bean.Employee">
select * from employee where 1=1
<if test="eName!=null">
and ename like '${eName}%'
</if>
</select>
3)Test
@Test
public void queryList(){
List<Employee> list = employeeDao.queryList("李",'女');
for (Employee employee:list) {
System.out.println(employee);
}
}
@Test
public void queryList2(){
List<Employee> list = employeeDao.queryList2("小",'男');
for (Employee employee:list) {
System.out.println(employee);
}
}
@Test
public void queryList3(){
Map<String,String> map = new HashMap<>();
map.put("userName","李");
map.put("userSex","男");
List<Employee> list = employeeDao.queryList3(map);
for (Employee employee:list) {
System.out.println(employee);
}
}
@Test
public void queryByIf(){
Employee employee = new Employee();
employee.seteName("李");
List<Employee> list = employeeDao.queryByIf(employee);
for (Employee emp:list) {
System.out.println(emp);
}
}
二、使用步骤
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
本文含有隐藏内容,请 开通VIP 后查看