文章目录
com.artisan.o2o.dao.ShopDao.java 新增查询接口
/** * * * @Title: selectShopById * * @Description: 根据shopId查询shop * * @param shopId * @return * * @return: Shop */ Shop selectShopById(long shopId);
ShopDao映射文件
/o2o/src/main/resources/mapper/ShopDao.xml
<resultMap id="shopMap" type="com.artisan.o2o.entity.Shop"> <id column="shop_id" property="shopId"/> <!-- property对应实体类中的属性名 column 对应库表中的字段名 --> <result column="shop_name" property="shopName"/> <result column="shop_desc" property="shopDesc"/> <result column="shop_addr" property="shopAddr"/> <result column="phone" property="phone"/> <result column="shop_img" property="shopImg"/> <result column="priority" property="priority"/> <result column="create_time" property="createTime"/> <result column="last_edit_time" property="lastEditTime"/> <result column="enable_status" property="enableStatus"/> <result column="advice" property="advice"/> <!-- 复合对象 --> <!-- property对应实体类中的属性名 column 对应库表中的字段名 --> <association property="owner" column="owner_id" javaType="com.artisan.o2o.entity.PersonInfo"> <id column="user_id" property="userId"/> <result column="name" property="name"/> </association> <association property="area" column="area_id" javaType="com.artisan.o2o.entity.Area"> <id column="area_id" property="areaId"/> <result column="area_name" property="areaName"/> </association> <association property="shopCategory" column="shop_category_id" javaType="com.artisan.o2o.entity.ShopCategory"> <id column="shop_category_id" property="shopCategoryId"/> <result column="shop_category_name" property="shopCategoryName"/> </association> </resultMap>
单元测试
@Test public void testSelectShopById() { Shop shop = shopDao.selectShopById(30L); Assert.assertNotNull(shop); Assert.assertEquals("优乐美", shop.getShopName()); Assert.assertEquals("北京", shop.getArea().getAreaName()); Assert.assertEquals("奶茶", shop.getShopCategory().getShopCategoryName()); System.out.println(shop.toString()); }
单元测试运行通过, 控制台的日志输出如下:
信息: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.Creating a new SqlSessionSqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@36cda2c2] was not registered for synchronization because synchronization is not active 六月 02, 2018 5:29:37 下午 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager 信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 2, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 10000, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hge9g69v1hxv2gi151wrqu|73e22a3d, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge9g69v1hxv2gi151wrqu|73e22a3d, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> jdbc:mysql://localhost:3306/o2o?useUnicode=true&characterEncoding=utf8, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 30, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 10, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@416c58f5] will not be managed by Spring==> Preparing: SELECT s.shop_id, s.shop_name, s.shop_desc, s.shop_addr, s.phone, s.shop_img, s.priority, s.create_time, s.last_edit_time, s.enable_status, s.advice, a.area_id, a.area_name, sc.shop_category_id, sc.shop_category_name FROM tb_shop s, tb_area a, tb_shop_category sc WHERE s.area_id = a.area_id AND s.shop_category_id = sc.shop_category_id AND s.shop_id = ? ==> Parameters: 30(Long)<== Columns: shop_id, shop_name, shop_desc, shop_addr, phone, shop_img, priority, create_time, last_edit_time, enable_status, advice, area_id, area_name, shop_category_id, shop_category_name<== Row: 30, 优乐美, 优乐美奶茶店, 复兴街, 123456, \upload\item\shopImage\30\2018053001010899137.png, null, 2018-05-30 01:01:07.0, 2018-05-30 01:01:07.0, 0, null, 1, 北京, 3, 奶茶<== Total: 1Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@36cda2c2]Shop [shopId=30, shopName=优乐美, shopDesc=优乐美奶茶店, shopAddr=复兴街, phone=123456, shopImg=\upload\item\shopImage\30\2018053001010899137.png, priority=null, createTime=Wed May 30 01:01:07 BOT 2018, lastEditTime=Wed May 30 01:01:07 BOT 2018, enableStatus=0, advice=null, owner=null, area=Area [areaId=1, areaName=北京, areaDesc=null, priority=null, createTime=null, lastEditTime=null], shopCategory=ShopCategory [shopCategoryId=3, shopCategoryName=奶茶, shopCategoryDesc=null, shopCategoryImg=null, priority=null, createTime=null, lastEditTime=null, parent=null]]六月 02, 2018 5:29:38 下午 org.springframework.context.support.GenericApplicationContext doClose 信息: Closing org.springframework.context.support.GenericApplicationContext@45afc369: startup date [Sat Jun 02 17:29:33 BOT 2018]; root of context hierarchy
库表中的数据
Github地址
代码地址: https://github.com/yangshangwei/o2o