您的当前位置:首页正文

学习笔记整理稿

2024-10-18 来源:威能网


学习笔记

第一章JAVA语法 ........................................................................................................................... 2

1.1sublist ................................................................................................................................... 2 第二章Oracle部分 .......................................................................................................................... 3

2.1创建新用户并授权! ......................................................................................................... 3 2.2删除用户及用户下的表 cascade级联 ............................................................................. 3 2.3导出/导入oracle数据文件 ................................................................................................ 3 2.4修改列定义语法 ................................................................................................................. 3 2.5 Oracle时间日期格式问题 ................................................................................................. 4 2.6创建表和插入测试数据 ..................................................................................................... 4 第三章CSS/javascript部分 ............................................................................................................. 5

3.1Input元素值属性为value没有S !oracle数据库的values值有S .................................. 5 3.2边框表格CSS样式 ............................................................................................................ 5 3.3禁止文本域拖动定义样式 ................................................................................................. 5 3.4带图片的按钮 ..................................................................................................................... 5 3.5Html5文本框占位符 placeholder ...................................................................................... 6 3.6是用data标签方便处理时间日期 .................................................................................... 6 3.7 跨行跨列 ............................................................................................................................ 6 3.8使用滤镜改变超链接图片颜色 ......................................................................................... 6 3.9CSS图片路径问题 .............................................................................................................. 6 3.10页面格式时间日期 ........................................................................................................... 6 第四章JSP/servlet部分 ................................................................................................................... 8

4.1JSEL导入页面标签库 ........................................................................................................ 8 4.2显示作用域值! ................................................................................................................. 8 4.2Dao增加数据不成功。数据库字段不匹配提示 .............................................................. 9 第五章框架部分 ............................................................................................................................... 9

第一节Hibernate ...................................................................................................................... 9

5.1.0Hibernate头部信息及结构 oracle驱动信息 ......................................................... 9 5.1.1Hibernate 关于表间关系 ....................................................................................... 10 5.1.2单向关联 一对多 .................................................................................................. 10 5.1.3set需要在一的一端的映射文件做配置 ............................................................... 10 5.1.4用户表xml配置文件 ............................................................................................ 10 5.1.5房屋信息po.java ................................................................................................... 11 5.1.6房屋信息xml文件................................................................................................ 11 5.1.7登陆逻辑判断问题 ................................................................................................ 12 5.1.8Ajax服务器返回信息处理类 ................................................................................ 13 5.1.9获取页面值的简单脚本 ........................................................................................ 14 5.1.10ajax页面设置onblur=\"checkUserid(this.value)\" ................................................ 16 第二节Springle ...................................................................................................................... 16

5.2.1Spring配置文件头部及结构 ................................................................................. 16 第三节Struts .......................................................................................................................... 17

5.3.1Struts配置文件及头部信息 ................................................................................... 17

1

AOP面向切口编程 ........................................................................................................ 17

第六章 工具使用 ........................................................................................................................... 20

6.1小贴士,eclipse大小写转换快捷键 ............................................................................... 20 Log4j的使用 .......................................................................................................................... 20 包结构显示改变 三角形展开,Package Presentation 两个自选项 ................................... 21 第七章Android 部分 .................................................................................................................... 22

Spinner下拉列表 ................................................................................................................... 22

第一章JAVA语法

1.1sublist

java.util.List中有一个subList方法,用来返回一个list的一部分的视图。

List subList(int fromIndex, int toIndex);

它返回原来list的从[fromIndex, toIndex)之间这一部分的视图,之所以说是视图,是因为实际上,返回的list是靠原来的list支持的。

所以,你对原来的list和返回的list做的“非结构性修改”(non-structural changes),都会影响到彼此对方。

所谓的“非结构性修改”,是指不涉及到list的大小改变的修改。相反,结构性修改,指改变了list大小的修改。

那么,如果涉及到结构性修改会怎么样呢?

如果发生结构性修改的是返回的子list,那么原来的list的大小也会发生变化;

而如果发生结构性修改的是原来的list(不包括由于返回的子list导致的改变),那么返回的子list语义上将会是undefined。在AbstractList(ArrayList的父类)中,undefined的具体表现形式是抛出一个ConcurrentModificationException。

因此,如果你在调用了sublist返回了子list之后,如果修改了原list的大小,那么之前产生的子list将会失效,变得不可使用。

tips: 如何删除一个list的某个区段,比如删除list的第2-5个元素? 方法是: 可以利用sublist的幕后还是原来的list的这个特性,比如

list.subList(from, to).clear();

2

这样就可以了 示例代码: public static void main(String[] args) { List parentList = new ArrayList(); for(int i = 0; i < 5; i++){ parentList.add(String.valueOf(i)); } List subList = parentList.subList(1, 3); for(String s : subList){ System.out.println(s);//output: 1, 2 } //non-structural modification by sublist, reflect parentList subList.set(0, \"new 1\"); for(String s : parentList){ System.out.println(s);//output: 0, new 1, 2, 3, 4 } //structural modification by sublist, reflect parentList subList.add(String.valueOf(2.5)); for(String s : parentList){ System.out.println(s);//output:0, new 1, 2, 2.5, 3, 4 } //non-structural modification by parentList, reflect sublist parentList.set(2, \"new 2\"); for(String s : subList){ System.out.println(s);//output: new 1, new 2 } //structural modification by parentList, sublist becomes undefined(throw exception) parentList.add(\"undefine\");// for(String s : subList){// System.out.println(s);// }// subList.get(0); } 。

3

第二章Oracle部分

SQL> conn sys/a as sysdba; SQL> create user username identified by \"123\"; User created SQL> grant connect ,resource to username; Grant succeeded jdbc:oracle:thin:@127.0.0.1:1521:orcl

2.1创建新用户并授权!

2.2删除用户及用户下的表 cascade级联 SQL> drop user mytieba cascade; User dropped

2.3导出/导入oracle数据文件 导出数据文件 DOS下运行 exp scott/tiger@orcl file=d://aa owner=scott exp scott/tiger@orcl(数据库的名字) file=d://aa owner=scott(按用户方式导出) 导入 为了防止数据覆盖,新建一个用户 imp maobo/11@orcl file=d://dd.dmp full=y

2.4修改列定义语法

4

2.5 Oracle时间日期格式问题 时间日期 insert into emp(eno ,hiredate) values(1,日-月-年+); values(2,'23-6月-14'); 使用日期的默认格式 使用to_date select to_date('2014-6-23 14:22:22','yyyy-mm-dd hh:mi:ss')fromdual; select to_date('2014-6-23 14:22:22','yyyy-mm-dd hh24:mi:ss')fromdual; to_date('要装换的字符串',‘转换的格式’) to_date('214/2/2/12:22:32' ,'yyyy/mm/dd hh24 mi:ss'); 显示的时候将date转换成字符串 to_char to_char(日期时间类型) select eno , to_char(hiredate,'yyyy-mm-dd hh:mi:ss') insert into personal(datetime) values(sysdate);

5

2.6创建表和插入测试数据 create table userinfo ( u_id number(9), u_account varchar2(20), u_pwd varchar2(20) ) drop table usefinfo; insert into userinfo values(1,'admin','admin');

第三章CSS/javascript部分

3.1Input元素值属性为value没有S !oracle数据库的values值有S 3.2边框表格CSS样式 3.3禁止文本域拖动定义样式 textarea { resize: none;} 鼠标滑过变颜色 3.4带图片的按钮 3.5Html5文本框占位符 placeholder 3.6是用data标签方便处理时间日期

生日 3.7 跨行跨列

7

colspan=\"3\"行 rowspan=\"3\"列 3.8使用滤镜改变超链接图片颜色 3.9CSS图片路径问题 如果你 的css样式写在html页面内部的话,路径应该为images/10.gif 如果样式是外部样式表的话应该路径是 ../images/10.gif 3.10页面格式时间日期 格式化日期时间的

丰富的input元素 功能丰富的input元素

8

type=\"color\"的文本框:

type=\"date\"的文本框:

type=\"time\"的文本框:

type=\"datetime\"的文本框:

type=\"datetime-local\"的文本框:

type=\"month\"的文本框:

type=\"time\"的文本框:

type=\"week\"的文本框:

type=\"email\"的文本框:

type=\"tel\"的文本框:

type=\"url\"的文本框:

type=\"number\"的文本框:

type=\"range\"的文本框:

type=\"search\"的文本框:

9

拖动条实现 成功机率 成功机率

第四章JSP/servlet部分

4.1JSEL导入页面标签库 <%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>

10

4.2显示作用域值!

编号 账号 密码 编辑
${d.u_id} ${d.name} ${d.pwd} 修改

4.2Dao增加数据不成功。数据库字段不匹配提示

common.MyJdbcException: 索引中丢失 IN 或 OUT 参数:: 10 at dao.DownsrcDao.add(DownsrcDao.java:28) at dao.t 原来是缺少一个字段顺序不匹配也会引起问题!

JSON

全称为:javaScript Object Notation 即javaScript对象符号,是轻量级的数据交换格式

添加插件包

第五章框架部分

Struts 和hibernate综合练习 租房系统 2014年8月18日03:01:42

11

搭建hibernate环境 手动建立DAO 报异常

# re: Exception in thread \"main\" org.hibernate.PropertyNotFoundException错误 哈哈,我昨天也遇到这个问题当时是uName,结果就报这个错了,后来才发现在这些属性的写法上也还要遵守一个规范才得行(不要使用首字母小写次字母大写的属性).

能进行一个表的增删改查添加多个后不能执行 报不能读取资源文件 Could not read mappings from resource

修改了列名属性,更改了数据库表名和列名相同的列。

仔仔细细检查了标间关系弄到现在2014年8月18日03:07:31终于解决 (不要使用首字母小写次字母大写的属性). 还报了

org.hibernate.MappingException

究其原因应该是列名没有对应没有使用javabean规范命名采用了首字母小写次字母大写的方式

第一节Hibernate

5.1.0Hibernate头部信息及结构 oracle驱动信息 org.hibernate.dialect.Oracle9Dialect jdbc:oracle:thin:@127.0.0.1:1521:orcl tenement 111 oracle.jdbc.driver.OracleDriver oracle_connection true

12

5.1.1Hibernate 关于表间关系 Hibernate 关系 5.1Hibernate建立类之间的关系 5.1.2单向关联 一对多 在一的一端 建立多的属性 Set nameset = new HashSet(0);// 0表示初始化大小 5.1.3set需要在一的一端的映射文件做配置

13

5.1.5房屋信息po.java public class House_Info { int house_id; House_Type housetype; UserInfo userinfo; Street street; int house_loculus; //室 int house_hall; //厅 String house_intro; //介绍 Double house_rent; String house_title; Date house_date; String house_phone; String house_linkman; }//省略get/set方法 5.1.6房屋信息xml文件

14

5.1.7登陆逻辑判断问题 public String log( ) { boolean lg; UserInfoDao dao = new UserInfoDao(); String uname = ServletActionContext.getRequest().getParameter(\"uname\"); String upwd = ServletActionContext.getRequest().getParameter(\"upwd\"); System.out.println(\"页面输入的uname的值\"+uname); System.out.println(\"页面输入的upwd的值\"+upwd); try { lg = dao.log(uname, upwd); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } if(lg=true) { System.out.println(\"登陆成功!\"); return \"ok\"; } else { System.out.println(\"登陆失败!\"); return \"no\"; } } public boolean log(String uname,String upwd) throws Exception { boolean fg= false; System.out.println(\"设置标记 进入查询方法\"); UserInfoDao udao = new UserInfoDao(); System.out.println(\"页面输入的uname的值\"+uname); System.out.println(\"页面输入的upwd的值\"+upwd); // String hql = \" from UserInfo where user_name='mao' and user_pwd='111' \"; 可以执行

15

String hql = \"from UserInfo where user_name=:n and user_pwd=:p\"; Session session = utils.HibernateSessionFactory.getSession(); Query q = session.createQuery(hql); q.setString(\"n\ q.setString(\"p\ System.out.println(\"设置了参数\"); Object user = q.uniqueResult(); System.out.println(\"执行了参数\"); //System.out.println(\"登陆的用户名为:\"+user.getUser_name()+\"密码为:\"+user.getUser_pwd()); if(user!=null) { System.out.println(\"找到记录登陆成功\"); fg=true; } else { System.out.println(\"没有找到匹配记录!登陆失败\"); fg=false; } return fg; }

2014年8月19日20:15:41

一天都在做登陆验证终于做好了 遇到的问题

好多东西不知道 传值还不怎么会

做ajax的action不是String签名。是void 5.1.8Ajax服务器返回信息处理类 package action; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.hibernate.Query; import org.hibernate.Session; import po.UserInfo;

16

import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import dao.UserInfoDao; public class Ajax implements Action, ServletRequestAware, ServletResponseAware { String uname; private HttpServletRequest request; private HttpServletResponse response; PrintWriter out; @Override public String execute() throws Exception { // TODO Auto-generated method stub return null; } //这里两个赋值语句没写搞了好久!从这里得到response 实现了ServletRequestAware, ServletResponseAware接口重写的方法 @Override public void setServletResponse(HttpServletResponse arg0) { // TODO Auto-generated method stub this.response = arg0; } @Override public void setServletRequest(HttpServletRequest arg0) { // TODO Auto-generated method stub this.request = arg0; } public void checkid() { // ServletActionContext.getRequest().getParameter(\"uname\"); System.out.println(\"检查用户名\" + uname); Session session = utils.HibernateSessionFactory.getSession(); //类似于JDBC的打问号设置参数 String par = uname; Query query = session.createQuery(\"from UserInfo where user_name=?\"); query.setString(0, par); List list = query.list(); for (UserInfo user : list) { System.out.println(user.getUser_name()); } System.out.println(list.size()); try { out = this.response.getWriter();//有异常这里卡死就是因为没设置上面的那个重写的方法this.response = arg0;和this.request = arg0; } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace();

17

} if (list.size() >= 1) { // 存在用户不能登陆 System.out.println(\"action提示存在记录 用户名不可用\"); out.print(\"true\");//返回信息给页面 } else { out.print(\"false\"); } } //uname属性的get 和set方法!这个之前没生产 获取不到值! public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } } 5.1.9获取页面值的简单脚本 ript lang=\"javascript\"> function pass(){ var pass = false; if( document.myForm.uname.value ==\"\" ){ alert(\"用户名不能为空\"); pass= false; }else if(document.myForm.upass.value == \"\"){ alert(\"密码不能为空\"); pass = false; } else if(document.myForm.upass.value != document.myForm.upass1.value){ alert(\"两次密码不一样\"); pass = false; } else { pass = true; } return pass; } sript lang=\"javascript\"> function checkpwd() {

18

var pwd1=document.myForm.upass.value; var pwd2=document.myForm.upass1.value if(pwd1!=pwd2) { alert(\"确认的密码不一致\"); } }

Ajax 页面脚本

19

5.1.10ajax页面设置onblur=\"checkUserid(this.value)\" 用户名: 一天做了一个ajax的列子!搞到现在八点多!

发布信息时值从页面上上获取存到数据库!不知道怎么封装!信息的主外键关系 不知道怎么体现存储! 已经解决

第二节Springle

2014年8月21日21:42:33 在练习spring时报错 Invalid property 'Properties' of bean class [dao.Car]: Bean property 'Proper....Hibernate运行报Did you mean 'properties'? 错误原因 在建立工程加入spring支持的时候默认的建立了[applicationContext.xml]文件,我看老师的代码有个beans.xml文件原来这个beans.xml是老师在建立的时候由[applicationContext.xml]改名而来的!我自己又建立了一个beans.xml,等于存在两个配置文件。所以报错!修改后测试成功可以读取属性!

5.2.1Spring配置文件头部及结构 轮胎 1 轮胎 2 铁三角

20

沙发1 沙发2 <%@ taglib uri= \"/struts-tags\" prefix=\"s\" %>

5.2.2spring配置文件无提示解决办法 由于spring的schema文件位于网络上,如果机器不能连接到网络,那么在编写配置信息时候就无法出现提示信息,解决方法有两种: 1。让机器上网,eclipse会自动从网络上下载schema文件并缓存在硬盘上。 2。手动添加schema文件,方法如下: windwos->preferences->myeclipse->files and editors->xml->xmlcatalog 点\"add\在出现的窗口中的Key Type中选择URI,在location中选\"File system\然后在spring解压目录的dist/resources目录中选择spring-beans-2.5.xsd,回到设置窗口的时候不要急着关闭窗口,应把窗口中的Key Type改为Schema location,Key改为http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 5.2.3三种实例化bean方法 1.使用类构造器实例化 2.使用静态工厂方法实例化 public class OrderFactory { public static OrderServiceBean createOrder(){ return new OrderServiceBean(); } } 3.使用实例工厂方法实例化: public class OrderFactory { public OrderServiceBean createOrder(){ return new OrderServiceBean(); }

21

} Bean交给spring管理默认是单实例

第三节Struts

5.3.1Struts配置文件及头部信息 要跳转的页面.jsp

AOP面向切口编程

获取页面值 String uname = ServletActionContext.getRequest().getParameter(\"uname\"); String upwd = ServletActionContext.getRequest().getParameter(\"upwd\"); System.out.println(\"页面输入的uname的值\"+uname); System.out.println(\"页面输入的upwd的值\"+upwd); Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116) ... 108 more [Mao] 2014-09-03 12:02:58,996 --> Not binding factory to JNDI, no JNDI name configured [Mao] 2014-09-03 12:02:59,165 --> line 1:79: unexpected token: = [Mao] 2014-09-03 12:02:59,165 --> line 1:103: unexpected token: = Struts Problem Report ----------------------------------------------------- Struts has detected an unhandled exception: Messages: unexpected token: =

22

unexpected token: = near line 1, column 79 [from com.csuinfosoft.crm.basedata.pojo.SalChance e where e.chcCustName like ='2' and e.chcTitle like='2' and e.chcLinkman='2'] File: org/hibernate/hql/antlr/HqlBaseParser.java Line number: 3,207 unexpected 生词本 [英] [ˌʌnɪkˌspektɪd][美] [ˌʌnɪkˌspektɪd] adj.想不到的,料不到的;意外的;忽然的;突然的 token 生词本 [英] [ˌtəukən][美] [ˌtokən] n.代币;象征;记号 adj.作为对某事的保证的;象征性的;作为标志的 vt.预兆:预示或象征,预兆

public class SalChanceDao extends ParentDao {

23

Logger log = Logger.getLogger(SalChanceDao.class); public List findByLike(String uname, String gaiyao, String linkman) { SalChance salChance = new SalChance(); log.info(\"设置标记 进入查询方法\"); // String hql = // \" from UserInfo where user_name='mao' and user_pwd='111' \"; 可以执行 String hql = \"from SalChance e where e.chcCustName like ? and e.chcTitle like ? and e.chcLinkman like ?\"; ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext( \"beans.xml\"); SessionFactory sessionFactory = (SessionFactory) ctx .getBean(\"sessionFactory\"); Session session = sessionFactory.openSession(); log.info(\"执行hql语句\"); Query q = session.createQuery(hql); log.info(\"页面获取的客户名值---概要\" + uname + gaiyao); log.info(\"得到执行结果\" + q); q.setString(0, uname); log.info(\"q.setString(1, uname);\"); q.setString(1, gaiyao); log.info(\"执行q.setString(2, gaiyao);\"); q.setString(2, linkman); log.info(\"执行q.setString(3, gaiyao);\"); log.info(\"插入参数完毕\"); List sa = q.list(); log.info(\"执行q.list\"); log.info(\"salchance 的dao中完成了findlike方法 返回\"); log.info(\"dao查询到的数据长度\" + sa.size()); return sa; } }

第六章 工具使用

6.1小贴士,eclipse大小写转换快捷键 Ctrl + Shift + X 将全部小写转换成大写Ctrl + Shift + Y 将全部大写转换成小写。 6.2通过已有的类抽取接口

24

类文件上单击右键选择[refactor]—>[extract interfact]

Log4j的使用

搞了好久终于搞定: 关键:

1.加入包支持【log4j-1.2.17.jar】 2.配置文件 #log4j.rootLogger=CONSOLE,FILE log4j.rootLogger=all,CONSOLE,FILE log4j.addivity.org.apache=true log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=debug log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.Encoding=UTF-8 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[MaoBo] %d - %c -%-4r [%t] %-5p %c %x --> %m%n 测试类 package po; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class loge { static Logger logger = Logger.getLogger(loge.class); public static void main(String[] args) { logger.info(\" info信息 \"); logger.warn(\"warn:信息\"); logger.debug(\"debug信息!不容易啊!\"); logger.fatal(\"fatal信息\"); logger.error(\"error信息\"); } } 输出信息 log4j:WARN Error initializing output writer. log4j:WARN Unsupported encoding? log4j:ERROR Could not find value for key log4j.appender.FILE log4j:ERROR Could not instantiate appender named \"FILE\". [MaoBo] 2014-08-25 02:02:09,016 - po.loge -1 [main] INFO po.loge --> info信息

25

[MaoBo] 2014-08-25 02:02:09,018 - po.loge -3 [main] WARN po.loge --> warn:信息 [MaoBo] 2014-08-25 02:02:09,019 - po.loge -4 [main] DEBUG po.loge --> debug信息!不容易啊! [MaoBo] 2014-08-25 02:02:09,019 - po.loge -4 [main] FATAL po.loge --> fatal信息 [MaoBo] 2014-08-25 02:02:09,019 - po.loge -4 [main] ERROR po.loge --> error信息

包结构显示改变 三角形展开,Package Presentation 两个自选项

Date标签获取时间

26

2014年9月25日00:34:29

复习第三阶段 框架知识 struts action

新建工程 SSH_review 框架复习。写了一个TEST测试 struts 配置了Struts 的xml文件 加入了包支持

不成功 修复 web.xml文件的配置 不成功 修复包命名空间 /index.jsp /index.jsp 修复namespace=”test” 加上了 / 符号 更正之后为 namespace=\"/test\" 成功访问到Action

第七章Android 部分 Spinner下拉列表 Xml文件内容 烤全鸡 烤全羊 烤乳猪 餐后甜点 调试报错,错误原因,标签:27

Imagebutton 去边框 android:padding=\"0dp\" android:adjustViewBounds=\"true\" 28

因篇幅问题不能全部显示,请点此查看更多更全内容