spring如何从数据库中查出数据并给下拉框赋值demo

spring如何从数据库中查出数据并给下拉框赋值demo,第1张

1、控制器层直接将list类型的数据存储到动态类上

2、视图层直接取出动态类存放到变量上,使用foreach循环遍历

例如:

model:

public class user{

public int uid{set;get;}

public string uname{set;get;}

}

controller:

user u = new user();

List<user> ulist = new List<user>();//定义list对象

for(i=0; i< 3; i++){

uuid = i;

uuname = "xxx"+i;

ulistadd(u);

}

var ViewBaguser = ulist;

view:

var ulist = ViewBaguser as List<user>;//赋值变量,指定类型

<select name="s1" class="s1">

foreach(var item in ulist){

<option value="@itemuid">@itemuname</option>

}

</select>

分享

可以的

需要有两个配置文件。

1 mysql 数据库映射:

AdriverClassName=commysqljdbcDriver

Aurl=jdbc:mysql://17220751:3308/blog

Ausername=trappuser

Apassword=Opera1!

BdriverClassName=commysqljdbcDriver

Burl=jdbc:mysql://localhost:3306/wedding

Busername=root

Bpassword=opera

上面定义的A、B为两个mysql instance的缩写。

2 存储过程与mysql instance的映射关系:

SP_Get_User=A

GetStocks=B

定义两个模拟存储过程,第一个数据库“SP_Get_User“是在数据库A下面,第二个数据库”GetStocks“是在数据库B下面。

3 建立自定义的sessionFactory

31 xml配置的datasource及sessionFactory如下:

<bean class="orgapachecommonsdbcpBasicDataSource" destroy-method="close" id="dataSource">

<property name="driverClassName" value="${databasedriverClassName}"/>

<property name="url" value="${databaseurl}"/>

<property name="username" value="${databaseusername}"/>

<property name="password" value="${databasepassword}"/>

</bean>

<bean id="sessionFactory" class="orgspringframeworkormhibernate4LocalSessionFactoryBean">

<property name="dataSource" ref="dataSource"/>

<property name="packagesToScan" value="comxxassetcommander">

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernatedialect">orghibernatedialectMySQLDialect</prop>

<prop key="hibernateshow_sql">true</prop>

</props>

</property>

</bean>

此处我们定义的sessionFactory的类型为LocalSessionFactoryBean,它是一个工厂对象,与我们再需要的 SessionFactory不是一回事,我们需要的sessionfactory是orghibernateSessionFactory,这个对象可以被第一个sessionFactory的getObject()方法生成。

32 由于我们连接的是多个mysql instance, 不方便在xml中配置多个datasource和多个sessionFactory,故可以通过纯java的形式开发,可以使用map来存储存储过程与mysql database的关系,将存储过程的名字和数据库建议关系,这样通过存储过程的名称就能得到数据库的缩写名,通过数据库的缩写名能够找到对应的mysql instance,使用纯java开发的过程类似于xml配置,如下:

dssetDriverClassName(getDriver());

dssetUrl(getUrl());

dssetUsername(getUsername());

dssetPassword(getPassword());

LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();

sessionFactorysetDataSource(ds);

sessionFactorysetPackagesToScan("comxxassetcommander");

Properties params = new Properties();

paramssetProperty("hibernatedialect",

"orghibernatedialectMySQLDialect");

paramssetProperty("hibernateshow_sql", "true");

sessionFactorysetHibernateProperties(params);

当我们获得可以使用的LocalSessionFactoryBean时候,在调用getObject()获得SessionFactory之前,必须要调用afterPropertiesSet()方法,否则得到的sessionFactory为空。

public Session getDsBySp(String spName) throws IOException {

//get the corresponding mysql database shortname by sp name

String dbName = getDbForSP(str);

//get the corresponding mysql instance connection by mysql database shortname

LocalSessionFactoryBean fB = getDsByDb(dbName);

// don't forget this line or null will be returned when you call getObject() method

fBafterPropertiesSet();

return fBgetObject()openSession();

}

注:在tomcat启动时,如果没有配置任何datasource,会出现如下错误:

orgspringframeworkbeansfactoryNoSuchBeanDefinitionException: No qualifying bean of type [javaxpersistenceEntityManagerFactory] is defined

故需要配置默认的datasource

这种方式需要做到不同的数据库instance直接业务的完全独立,不可以出现跨数据库的表join,否则处理难度会增加。

可以使用JdbcTemplate类的execute()方法重新执行SQL语句,将数据入库。通过JdbcTemplate的batchUpdate()方法,也可以实现批量添加数据的功能。SpringBoot还提供了其他的数据库 *** 作工具,如Hibernate、Mybatis等,也可以用来对数据库进行回滚 *** 作和添加数据。

您好,很高兴为您解答,方法好下:

把json-lib-ext-spring的异常处理bean的bean配置项去掉就可以了。。

package netsfserviceimpl;

import javautilList;

import javaxpersistenceEntityManager;

import javaxpersistencePersistenceContext;

import javaxpersistenceQuery;

import netsfservicePersonService;

import orgspringframeworkcontextannotationScope;

import orgspringframeworkstereotypeService;

@Scope("prototype")

@Service("personService")

public class PersonServiceImpl implements PersonService {

EntityManager em;

@PersistenceContext

public void setEm(EntityManager em) {

thisem = em;

}

public List getList(){

String sHql = "FROM Person";

Query query = emcreateQuery(sHql);

List resultList = querygetResultList();

return resultList;

}

public String test(){

return "hello world, 雪狐!";

}

}

如果我的回答没能帮助您,请继续追问。转载,仅供参考。

模板引擎这个词,咋听起来,有点高大上的意味。

实际上,模板引擎是非常平易近人的技术。譬如大家可能都比较熟悉的 JSP ,就是一种比较典型的模板引擎。

当浏览器将请求抛给控制器,控制器处理好数据后,就跳转 JSP 等模板引擎页面。注意在跳转的同时,还会将数据组装好,也交给模板引擎处理。

模板引擎会根据数据,和模板引擎的规则,动态生成 HTML 页面,最后返回给浏览器显示。

我们使用 Spring Boot 开发 Web 项目,大体上有两种方式。

第一种方式,是后端服务化的方式,也是当前的主流方式。前端是静态的 HTML 页面,通过 Ajax 请求 Spring Boot 的后端接口。 Spring Boot 返回数据一般采用 JSON 格式,前端接收后将数据显示。

第二种方式,是采取模板引擎的方式。前端的请求,到达 Spring Boot 的控制器后,控制器处理请求,然后将返回数据交给模板引擎。模板引擎负责根据数据生成 HTML 页面,最后将 HTML 返回给浏览器。

我个人比较推荐第一种方式,说一下该方式的几个优点:

本篇是讲模板引擎,也得说说模板引擎的优点,王婆卖瓜不能光夸草莓啊。模板引擎开发的页面,对搜索引擎 SEO 比较友好;还有就是简单的页面,如果用模板引擎开发速度比较快,毕竟模板化的方法,目的就是减少重复提高效率。

Spring Boot 支持的模板引擎种类很多,常见的有 FreeMarker 、 Thymeleaf 、 JSP 。

因为这些模板引擎使用的用户都不少,所以我们逐一介绍下其实现过程。

至于孰优孰劣,请各位看官自行评价。正所谓:尺有所短,寸有所长,各取所爱,万物生长!

本篇我们开发一个商品浏览项目实例。

此处说一个我个人的经验:在做一个项目或一个模块的时候,不要一开始就动手写代码,最好是谋定而后动。

我们作为程序员,实际上是整个程序世界的总指挥。应该先整体规划,再实现局部。这种总分型的开发方法便于我们理顺思路,提高编码效率!

好的,我们来思考下,实现商品浏览项目实例的整体流程:

整体流程

可以看到,我们是先建立了控制器方法和页面,再去实现其中的具体细节。这样可以让我们的思维保持连贯性和整体性,在做一些页面和方法较多的项目时,会感觉更加顺畅。

我们按整体流程,使用 FreeMarker 模板引擎,来实现商品浏览功能。

使用 Spring Initializr 创建项目,Spring Boot 版本选择 225 , Group 为 comimooc , Artifact 为 spring-boot-freemarker ,生成项目后导入 Eclipse 开发环境。

引入 Web 项目及 FreeMarker 模板相关的依赖项,代码如下:

实例:

创建控制器类,由于是商品相关的控制器,所以命名为 GoodsController ,代码如下:

实例:

我们具体解释下该类的作用。

我们 resource/templates 目录下新建商品页面 goodsftl ,先不必实现具体功能,代码如下:

实例:

此时我们启动项目,然后访问 >

你的应该是Spring获得数据库连接对象的类。

(SpringFramework504RELEASEAPI)

在Java数据库 *** 作的框架中,不论是Spring,Struts,或者你自己写的连接控制也不管你是否集成连接池,比如说C3P0。

一般来说,都是先要获得数据库的链接。

在这里你的连接在Connection里面。

获得连接后才能对数据库进行 *** 作。

以上就是关于spring如何从数据库中查出数据并给下拉框赋值demo全部的内容,包括:spring如何从数据库中查出数据并给下拉框赋值demo、spring mvc可以连接数据库吗、springboot手动回滚之后再往库里添加数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9862073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存