⑴ javaWeb sql语句相关
这是SQL模糊查询,比如你的数据库中某一条记录的userName的值为“为什么”那么使用SQL的模糊查询可以使用两种方式将这条记录查询出来,第一种:使用多字符通配符 %语法 username like '%什么' 或者 ‘%什%’ 或者 ‘为什%’ 含义就是只要包含你指定的字符加上你的通配符的位置的数据都可以查询出来,第二种:使用单字符通配符 _ ,语法跟第一种一样,只是一个 _ 只能代表一个字符或一个汉字!还有不明白的请继续追问!
⑵ JavaWeb学习路线
JavaWeb核心框架
持久层框架:Hibernate、iBATIS
表现层框架:Struts1、Struts2
业务层框架:Spring
java学习路线图:
1、Hibernate:ORM
Hibernate是一个Java ORM开发框架
ORM是Object Relation Mapping的缩写,顾名思义,即对象关系映射。
ORM是一种以面向对象的方式来进行数据库操作的技术。Web开发中常用的语言,都会有对应的ORM框架。而Hibernate就是Java开发中一种常用ORM框架,另一个现在流行的ORM框架是Mybatis。
为什么需要ORM框架?
简单地理解,通过Java进行数据库访问的正常流程可以分为以下几步:
准备好SQL语句
调用JDBC的API传入SQL语句,设置参数
解析JDBC返回的结果
这个过程实际上非常麻烦,比如:
在Java代码中拼接SQL非常麻烦,而且易于出错
JDBC的代码调用有很多重复性的代码
从JDBC返回的结果转换成领域模型的Java对象很繁琐
而使用ORM框架,则可以让我们用面向对象的方式来操作数据库,比如通过一个简单的函数调用就完成上面整个流程,直接返回映射为Java对象的结果。这个流程中很大一部分工作其实可以交给ORM自动化地帮我们执行。对,类似MVC框架,ORM框架会帮你处理好相关的繁琐事情!
2. Struts:MVC
Struts是一个Java Web MVC开发框架。MVC早在1978年就作为Smalltalk的一种设计模式被提出来了,引用到Web应用中来时:
模型Model用于封装与业务逻辑相关的数据和数据处理方法
视图View是数据的HTML展现
控制器Controller负责响应请求,协调Model和View
Model,View和Controller的分开,是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。
MVC开发模式下,Java Web开发会遇到URL路由、模板渲染、表单绑定/提交/验证、Session封装、权限验证、国际化等一系列通用的问题,而MVC框架会将这些通用问题都封装进框架中,你在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就能帮你处理好一切,可以极大地简化代码。
3.Spring:DI/AOP
Spring对应的关键词是DI(依赖注入)与AOP(面向切面编程),可以认为是一个以DI和AOP为核心Java Web一站式的集成(粘合)框架。
其中DI也称为IoC(控制发转)用于管理Java对象之间的依赖关系(一定要说DI是IoC实现方式的童鞋们见评论区),AOP用于解耦业务代码和公共服务代码(如日志,安全,事务等)。DI和AOP能够让代码更加简单,具有良好的松耦合特性和可测试性,极大地简化开发。理解这两者是使用Spring框架的基础。
Spring框架对Java企业应用开发中的各类通用问题都进行了良好的抽象,因此也能够把应用各个层次所涉及的特定的功能和开发框架(如接下来要说的MVC框架、ORM框架)方便得组合到一起(这也得益于依赖注入和面向切面编程带来的强大功能)。Spring是一个极其优秀的一站式的Full-Stack集成框架,因此基于Spring核心,对Java应用开发中的各类通用问题几乎都提供了针对性的开发框架,比如你耳熟能详(如果你对这个问题感兴趣的话)的Spring MVC,Spring Data。
Java曾经有另外一个类似的一站式框架粘合框架Seam,这是Hibernate的作者、脾气火爆的大神Gavin King的作品,核心是基于依赖注入来黏合JSF和EJB,不过推出时Spring已经大杀四方,Seam基本已经退出历史舞台了。记得Seam提过一个我认为很不错的概念:“双向注入”,类似现在前端框架中的双向绑定,当时来说还是很超前的。
⑶ java web 怎么连接sql数据库
JAVA Web开发中与数据库的连接操作,配置:
1、新建数据库。
新建登录角色,在新建数据库的时候把数据库的所有权交给你新建的角色。用用户和密码控制数据库。保证数据库的安全。
2、编写context.xml文件 Xml文件的目的是封装用户和密码,也是封装的一种,方便操作。
以下为context.xml文件样例:
<?xml version="1.0" encoding="utf-8"?>
<Context reloadable = "true">
<Resource
name="jdbc/sampleHS"
type="javax.sql.DataSource"
maxActive="14"
maxIdle="10"
username="hstaoshu"
maxWait="5000"
driverClassName="org.postgresql.Driver"
password="hstaoshu"
url="jdbc:postgresql://localhost:5432/hstaoshu"/>
</Context>
详细说明:
name="jdbc/sampleHS"里面的ssampHS是可改名称,建议根据需要自己命名;
username="hstaoshu"
password="hstaoshu"此两项为你新建的数据库登录角色用户名和密码信息,只有匹配 了才能访问。这里简单为了表示,把用户名和密码弄成了跟数据库名字一样。其实这是很不安全的。
url="jdbc:postgresql://localhost:5432/hstaoshu"/>
这是连接数据库的URl,就像访问网站的地址一样。没有这个是无法访问数据库的。localhost:5432表示本地端口。一般不需要改动,如果你在配置数据库的时候改动过端口,那么你需要把它改回来。/hstaoshu是你的数据库名称。
其他选项请勿擅自改动。
3、编写DAO类。
DAO类的作用是与数据连接后,对数据库的一些操作的封装。封装的作用。为了更好的数据管理。
DAO是真正如何使用数据库的关键步骤,前两步只是部署和配置。
private static InitialContext context = null;
private DataSource dataSource = null;
//一般把跟数据库的连接放在DAO类的构造函数里,只要被实例化,就能和数据库连接。
public BookDAO() {
try {
if (context == null) {
context = new InitialContext();
}
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/sampleHS");
// 连接数据库,前面在context.xml文件配置里的URl
} catch (NamingException e2) {
e2.printStackTrace();
}
}
public Connection getConnection() {
Connection conn = null;
try {
conn = dataSource.getConnection();// 获得数据源的连接对象
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
做完上面的三步操作,开发环境已经完全和数据库连接OK,可以开始数据库的操作了。一般来说,对数据库的操作语句都是提前封装好的。这样修改起来会对下面的代码影响降到最小。
如下:
// ------------------数据库操作语句代码封装------------------
/* 查看所有图书 */
private static final String SELECT_ALL_SQL = "SELECT * FROM book";
那么在使用的时候只要直接调用:
pstmt = conn.prepareStatement(SELECT_ALL_SQL);
⑷ java web的sql语句报错。求大神看看
你有一个语法错误,在values('woo','roo',23.0,'wowo')'这一行,你自己仔细找一找,还有你这样采用字符串拼接的写法是存在重大安全隐患的(sql注入攻击),建议你使用预编译的sql语句,用问号(?)代替参数。
⑸ 我的JAVAWEB工程SQL语句在MYSQL中可以正确执行,但是在TOMCAT里却报错,求助解答~~~
maven项目就clean、install,然后重启项目
重启项目
如果还不行就清除网页缓存
以上是你曾经在idea中输入过错误SQL语句(后来在MYSQL中调试成功了)时首先可以选择的做法
下面是没有修改过的可选做法
查看配置文件,数据库是否连通
查看数据库版本
仔细检查语法,尤其是逗号。
⑹ java web项目如何在页面让不懂数据库的人灵活的写sql
用啥数据库就下载相关的jdbc去连接相应的数据库,其实用啥数据库都是一个原理,要把代码看懂了,至于打开项目的话应该和数据库没关系吧,启动项目的话就得看一下报什么错,然后对症下药了。
⑺ 关于javaweb的层sql语句的问题
sql有几个?就得设置几个参数query.setParameter(1,id); 第一个参数代表?号出现的顺序,从0开始,第二个参数是参数值。
你的sql中有3个?,一个被注视掉,所以设置query.setParameter(1,id);是要添加的。
could not resolve property: orgid of: com.welfare.entity.TEtpSubsidies这是另一个错误了,是你的实体配置有问题,去找对应的entity
⑻ javaweb中的sql,hql,qbc怎么去理解
sql就是在层直接写sql语句。
hql是hibernate的一种面向对象的编程方式,主张对象关系映射,但它不是存粹的,所以写起来有点像sql,但里面的类似from Cat,Cat是类名,不是表名。
qbc就是完全的面向对象编程了,它完全可以抛弃掉sql语句,算是一种编程人员的福音,用这种方式,可以不知道sql写法,也能做开发。
⑼ javaweb连接sql、oracle的详细过程和用法
---------声明:这个是复制来的
先建立数据源,开始,管理工具,数据源odbc,里面应该可以创建了。选择上你要建立数据源的数据库,下面的dms就是起得数据源名字,要记住。代码如下:
Connection con=null;
java.sql.Statement st=null;
ResultSet rs=null;
String Source="DMS";
String user=null,pass=null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection
("jdbc:odbc:"+Source,user,pass);
st=con.createStatement();
rs=st.executeQuery(str);
对于oracle,先要从oracle安装目录中搜索到ojdbc14.jar文件,然后加入到你的工程的lib中去,看具体情况,有开发工具区别。代码如下,里面的ip地址中其实已经包含了端口号,比如92.168.1.1:1521,一般情况下端口号就是1521.
public boolean open()
{
Properties props = new Properties();
props.put("user", username);
props.put("password", password);
Driver myDriver=null;
try {
myDriver = (Driver) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
try {
System.out.println("jdbc:oracle:thin:@"+this.IPAdress+":"+this.database);
conn = myDriver.connect("jdbc:oracle:thin:@"+this.IPAdress+":"+this.database, props);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
try {
st=conn.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}
⑽ javaweb程序sql语句语法错误
这个是关键字错误,"name"和"National"都是ACCESS中保留关键词。如果你更换一个就可以了,更改一下你的这个列名的名称,试试吧。
而且这个地方的逗号打错位置了National='汉,'