发表于: 2018-10-18 22:57:14

1 417


今天完成的事情:

一,学习驼峰命名法

驼峰命名法的基本知识

骆驼式命名法(Camel-Case)又称驼峰式命名法,是电脑程式编写时的一套命名规则(惯例)。

正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。

有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读

骆驼式命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。

驼峰命名法可以分为大驼峰法he小驼峰法

        小驼峰法

变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如
int myStudentCount;
变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。

        大驼峰法

相比小驼峰法,大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,命名空间等。譬如

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&amp;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的注解方式,学习基本知识

遇到的问题:

在学习基础知识时,资料看过很多,也练习过代码,笔记也做了,但是没有达到预期效果,很多知识没法理解或者是当时知道了过了一会就有不会用了,没有达到灵活应用的效果
收获:

收获的比较少吧,只能照着模板写代码,蓝瘦


返回列表 返回列表
评论

    分享到