发表于: 2018-10-18 22:57:14
1 417
今天完成的事情:
一,学习驼峰命名法
驼峰命名法的基本知识
骆驼式命名法(Camel-Case)又称驼峰式命名法,是电脑程式编写时的一套命名规则(惯例)。
正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。
有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读
骆驼式命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。
驼峰命名法可以分为大驼峰法he小驼峰法
小驼峰法
大驼峰法
public class DataBaseUser
二,复习mybatis及其相关知识
步骤一,配置mybatis-config.xml文件用于连接数据库
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<package name="com.lyh.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://188.131.142.171:3306/tesk?characterEncoding=utf-8&useSSL=true"/>
<property name="username" value="root"/>
<property name="password" value="123456789"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="Category.xml"/>
</mappers>
</configuration>
步骤二,建立实体类,再建立映射类文件并准备sql命令语句
<?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.lyh.pojo.Students" >
<insert id="insertStudents" parameterType="students">
insert into students(name,qq,wish,school,enrolment_time,type,know_from,create_at,update_at) values (#{name},#{qq},#{wish},#{school},#{enrolment_time},#{type},#{know_from},#{create_at},#{update_at})
</insert>
<delete id="deleteStudents" parameterType="int">
delete from students where id = #{id}
</delete>
<update id="updateStudents" parameterType="students">
update students set name = #{name},qq = #{qq} where id = #{id}
</update>
<select id="selectStudents" resultType="students">
select * from students where id = #{id}
</select>
<select id="selectAllStudents" resultType="Students">
select * from students
</select>
</mapper>
步骤三,开始建类执行sql语句
public class TestMybatis {
public static void main(String[] args) throws IOException {
//定义数据源
String resource = "mybatis-config.xml";
//获取数据源
InputStream inputStream = Resources.getResourceAsStream(resource);
//通过sql工厂类创建一个新的数据输出流,调用SqlSessionFactoryBuild对象的build(inputStream)方法
//SqlSessionFactory(sql会话工厂)是mybatis中的一个关键对象,每个mybatis都是围绕SqlSessionFactory进行的;
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//打开
//由SqlSessionFactory实例获取SqlSession实例,操作数据库
SqlSession session = sqlSessionFactory.openSession();
//实例化实体类Students
Students students = new Students();
// 使用set的方法设置要插入数据的具体内容
students.setName("李白");
students.setQq(17540990);
students.setWish("简繁体个");
students.setSchool("灰身粉骨毁容");
students.setEnrolment_time(5468541);
students.setType("java");
students.setKnow_from("微信");
students.setCreate_at(84);
students.setUpdate_at(34564);
// 调用映射文件Category.xml执行插入数据方法
session.insert( "insertStudents",students);
// 提交命令
session.commit();
// 结束数据库操作
session.close();
//设置要删除数据的具体条件
students.setId(66);
// 调用映射类Category里的sql删除语句
session.delete("deleteStudents",students);
// 打印结果,判断这条数据是否删除成功
System.out.println(students.getName());
// 提交命令
session.commit();
// 结束数据库操作
session.close();
// 用selectOne的方法设置要修改对象的具体条件
Students students1 = session.selectOne("selectStudents",32);
// 用set的方式设置具体要修改的内容
students1.setName("无敌而非");
students1.setQq(87465129);
// 调用映射类Category里的sql修改命令
session.update("updateStudents",students1);
// 提交命令
session.commit();
// 关闭数据库操作
session.close();
// 调用listall的方法,执行查询语句
listAll(session);
// 提交命令
session.commit();
// 关闭数据库操作
session.close();
}
private static void listAll(SqlSession session){
List<Students> cs = session.selectList("selectAllStudents");
//foreach增强for循环,可以遍历表中所有数据
for (Students c : cs){
// 打印出想要显示出的所有数据
System.out.println(c);
}
}
}
接触到的知识点
在MyBatis中的常见对象有SqlSessionFactory和SqlSession.
1.SqlSessionFactory
SqlSessionFactory是MyBatis的关键对象,SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得.每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心
2.SqlSession
SqlSession是MyBatis的关键对象,类似于JDBC中的Connection,可以用SqlSession实例来直接执行被映射的SQL语句..使用完SqlSeesion之后关闭Session很重要。
Foreach(增强for循环)
foreach其实是for循环的一个特殊简化版。
foreach的书写格式:
for(元素类型 元素名称 : 遍历数组(集合)(或者能进行迭代的)){
语句
}
foreach虽然是for循环的简化版本,但是并不是说foreach就比for更好用,foreach适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。
另外foreach不支持在循环中添加删除操作,因为在使用foreach循环的时候数组(集合)就已经被锁定不能被修改,否则会报出java.util.ConcurrentModificationException异常
总结如下:
foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。
foreach不能对数组或集合进行修改(添加删除操作),如果想要修改就要用for循环。
所以相比较下来for循环更为灵活。
明天计划的事情:
复习mybatis的注解方式,学习基本知识
遇到的问题:
在学习基础知识时,资料看过很多,也练习过代码,笔记也做了,但是没有达到预期效果,很多知识没法理解或者是当时知道了过了一会就有不会用了,没有达到灵活应用的效果
收获:
收获的比较少吧,只能照着模板写代码,蓝瘦
评论